您的位置 首页 解答

51学习之串口发送

先是自己根据PPT学习资料配置了下串口,试图向上位机发送字母c下了不能工作,找资料看发现少配置了SCON寄存器,再试,还不行,收到的是乱

先是自己依据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. 有空仍是要好好学学相关的理论啊!比方波特率初值的计算啥的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/261124.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部