写了一个特别简单的程序 但是不知为何 用串口调试助手时候 有不稳定因素产生
程序如下
#include<reg51.h>
int statu;
int dat;
void UsartConfigura
tion(); //初始化
void main()
{
//int receiveData;
UsartConfiguration();
while(1)
{
if(RI)
{
dat=SBUF;
P2=dat;
RI=0;
}
}
}
void UsartConfiguration()
{
SCON=0X50; //设置为工作方式1
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH1=0XF3; //计数器初始值设置,注意波特率是4800的
TL1=0XF3;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1;
RI=0; //打开计数器
}
P2控制流水灯 每次关闭
单片机 然后重新启动时候 发送的第一个指令都是无效的,从第二个开始,流水灯才能正常工作,这是为什么?????
-
这个不是串口的问题!!!你上位机的串口一直检测接收信号 满足起始位停止位条件就把数据存入缓存 你软件开着自然就显示了 它哪里管你数据对错!你TI = 1; 初始化单片机的TXD 引脚为高 上位机没有检测到起始条件 自然就不做接下来的事了(采样引脚电平等),
没看懂你想表达什么,但串口一次只能接收一个8位数据这是确定的,所以应该用8位无符号数保存较为恰当。ASCII码当然是8位的
十六进制 是进制!!!不是位宽!!!0xff 位宽8位 这个是十六进制表示!!!
一周热门 更多>