微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 51学习之串口发送

51学习之串口发送

时间:11-23 来源:互联网 点击:
先是自己根据PPT学习资料配置了下串口,试图向上位机发送字母c.下了不能工作,找资料看发现少配置了SCON寄存器,再试,还不行,收到的是乱码。又看了看人家的发现是配置的参数不正确,就是波特率不对。抄人家的数上来,还不行。郁闷了。
然后周末搬家,收东西,也没顾上调。这周单位忙TBKZQ的事情,晚上回来晚,也不说调了。想想这2天晚上回来没干啥事,有点空虚,决定再调调串口。
还是上回的程序,收到的东西很怪。并且有时候还会出现就是我关串口,或是电路板断电,小助手还源源不断的收数据,最后死机了。(我猜测这种情况是因为串口一直不停发,数据间也没延时,最后串口处理不过来,会乱码,会死机。)换个字发,还是不行,但偶尔也会正常,再下程序,OK了。
elay()
{ int i,j;
for(i=0;i<7000;i++)
{
for(j=0;j<3;j++);
}
}

Uart_int()
{ SCON=0x50;
TMOD=0x20;
TH1 =0xfd;
TL1 =0xfd;

TR1 =1;
}

void Main()
{
Uart_int();
while(1)
{
SBUF=c;
Delay();
SBUF=s;
Delay();
SBUF= ;
Delay();
}
}
哎,不管怎样,先弄个正确的,也好有点信心往下进行。至于复杂点的,调用函数发字符啥的,回头再弄吧。
总结下串口发送吧!
1. 串口发送可以不理发送中断,所以不用配置中断。但要查询中断,肯定要开中断才行了。
2. 波特率一定要配置对,不然收到的肯定不是你想要的数据了。
3. 发数据要注意延时,要不会死机的。
4. 有空还是要好好学学相关的理论啊!比如波特率初值的计算啥的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top