分享

51学习之串口发送

 共同成长888 2016-05-28
        先是自己根据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.     有空还是要好好学学相关的理论啊!比如波特率初值的计算啥的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多