找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2318|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机串口发送数据,第一个字符偶尔会出现错误

[复制链接]
跳转到指定楼层
楼主
我用串口通信发送 字符、字符串、还是空格啥的,pc机串口助手上偶尔会显示第一个字符错误。
程序波特率和串口助手上的都一致,不明白为什么会出现这种情况

单片机源程序如下:
  1. void UART_Init( void )  
  2. {  
  3.     TMOD = 0x20;  
  4.     SCON = 0x50;
  5.     TH1 = 0xFD;  
  6.     TL1 = 0xFD;  
  7.     TR1 = 1;  
  8. }

  9. void Uart1Send( uchar c )
  10. {
  11.         SBUF=c;
  12.         while(!TI)
  13.         TI=0;
  14. }

  15. void Uart1Sends( const uchar *str )
  16. {
  17.         for(; *str!='\0'; str++)
  18.         {
  19.                 Uart1Send( *str );
  20.         }
  21. }

  22. void cktx()
  23. {
  24.   Uart1Send(0x0d);
  25.   Uart1Send(0x0a);
  26.   Uart1Sends("SET: ");
  27.   Uart1Sends("TempH=");
  28.   Uart1Send(temph/10+'0');
  29.   Uart1Send(temph%10+'0');
  30.   Uart1Sends("   TempL=");
  31.   Uart1Send(templ/10+'0');
  32.   Uart1Send(templ%10+'0');
  33.   Uart1Send(0x0d);
  34.   Uart1Send(0x0a);
  35.   Uart1Sends("     HumiH=");
  36.   Uart1Send(humih/10+'0');
  37.   Uart1Send(humih%10+'0');
  38.   Uart1Sends("   HumiL=");
  39.   Uart1Send(humil/10+'0');
  40.   Uart1Send(humil%10+'0');
  41.   Uart1Send(0x0d);
  42.   Uart1Send(0x0a);
  43.   Uart1Sends("NOW: ");
  44.   Uart1Sends("Temp:");
  45.   Uart1Send(tempvalue%100/10+'0');
  46.   Uart1Send(tempvalue%100%10+'0');
  47.   Uart1Send('.');
  48.   Uart1Send(a*0.625+'0');
  49.   Uart1Sends(" C");
  50.   Uart1Sends("   Humi:");
  51.   Uart1Send(humi/10+'0');
  52.   Uart1Send(humi%10+'0');
  53.   Uart1Sends(" %RH");
  54.   Uart1Send(0x0d);
  55.   Uart1Send(0x0a);
  56.   Uart1Send(0x0d);
  57.   Uart1Send(0x0a);
  58.   delay_ms(10);
  59. }
复制代码


捕获.PNG (14.26 KB, 下载次数: 36)

如图,偶尔会出现多余的字符

如图,偶尔会出现多余的字符
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表