2019-07-15 13:14发布
haiwon 发表于 2016-8-15 10:12 #include #include #define uchar unsigned char
最多设置5个标签!
大把的例子
另外,在给SBUF赋值后也不能立即通过if(TI == 1)判断是否发送完毕。串口发送一个字节数据需要的时间相对来说挺长的,少说也能执行几十个if(TI == 1),应该用while(TI == 0);或者while(!TI);等待发送完成,然后再用TI = 0清除标志位。
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void Delay(uint j)
{ uint i;
for(;j>0;j--)
{
for(i=0;i<27;i++);
}
}
void main ()
{
TMOD = 0x20; //
TH1 = 253; // 赋初值
TL1 = 253;
TR1 = 1; // 开始计时
SCON = 0x50; //工作方式1,9600bps
while(1)
{
SBUF=5;
while(TI==0) ;
TI=0 ;
Delay(10000);
}
}
把if(TI==0)改用while(TI==0)之后,收到的数据还是多了一个“8”,不知道是什么情况@keil-uvision4
我迷茫了……抱歉。
一周热门 更多>