欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3789|回復: 11
打印 上一主題 下一主題
收起左側

單片機串口通信數據錯誤的問題!

[復制鏈接]
跳轉到指定樓層
樓主
89c52rc11.05892m 9600bps
直接接在電腦的上,用串口助手發的字符A ,單片機收的情況看一下,
怎么 錯這么多呀?????(上次用紅外線發的錯的更多!!!!!!
何解????!!!!!

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:299872 發表于 2019-4-8 09:35 | 只看該作者
發送間隔是1111MS
回復

使用道具 舉報

板凳
ID:434820 發表于 2019-4-8 10:26 | 只看該作者
上傳代碼幫你看一下
回復

使用道具 舉報

地板
ID:158375 發表于 2019-4-8 10:32 | 只看該作者
是不是控制字符沒處理好,顯示出來了?
回復

使用道具 舉報

5#
ID:313341 發表于 2019-4-8 10:59 | 只看該作者
單片機的串口發送比較簡單,不可靠,紅外線更不可靠
回復

使用道具 舉報

6#
ID:426861 發表于 2019-4-8 11:22 | 只看該作者
這個需要分析你的程序
回復

使用道具 舉報

7#
ID:507174 發表于 2019-4-8 17:19 | 只看該作者
接收的程序可能有問題
回復

使用道具 舉報

8#
ID:299872 發表于 2019-4-9 14:59 | 只看該作者
程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit lcdrs= P1^0;
  5. sbit lcdrw= P1^1;
  6. sbit lcden= P2^5;
  7. uchar i,daa[];

  8. void delay(unsigned int i){while(--i);}

  9. void write(uchar da,bit cr)
  10. {
  11.         lcdrs=cr;
  12.         P0=da;
  13.         delay(5);
  14.         lcden=1;
  15.         delay(15);
  16.         lcden=0;
  17. }

  18. void init()
  19. {
  20.         lcdrw=0;
  21.         lcden=0;
  22.         delay(1);
  23.         write(0x38,0);
  24.         write(0x0c,0);
  25.         write(0x01,0);//??
  26.         delay(155);
  27.         write(0x80,0); //???
  28. }

  29. void  URATinit( )
  30. {
  31. TMOD=0x20;
  32. SCON=0x50;
  33. EA=1;
  34. ES=1;
  35. TH1=0xfd;
  36. TL1=0xfd;
  37. TR1=1;
  38. }

  39. void receive() interrupt 4
  40. {
  41. if(RI)
  42. {
  43. RI=0;
  44. daa[i]=SBUF;
  45. write(daa[i],1);
  46.          }
  47. i++;
  48. if(i>20)i=0;

  49. }

  50. void main()
  51. {
  52.         init();
  53.         URATinit( );
  54.         while(1);
  55. }
復制代碼
回復

使用道具 舉報

9#
ID:503529 發表于 2019-4-9 17:28 | 只看該作者
這可能是代碼進入了死循環不斷接收
回復

使用道具 舉報

10#
ID:299872 發表于 2019-4-10 01:04 來自觸屏版 | 只看該作者
應該沒進死循環,因為我在電腦換個字符,一樣可以收到,一樣錯很多。
回復

使用道具 舉報

11#
ID:283954 發表于 2019-4-10 13:14 | 只看該作者
能接收到正確字符表示波特率與接線都很正確,幾個字符后錯誤是因為時序誤差超過了極限,過后恢復正常是因為錯誤時序錯多幾次后又恢復正常。主要是因為:接收程序里接收到字符后必須先放到記憶緩沖,然后馬上離開,不能在里面就寫字符(write),因為write的時候有很多delay,等寫完再回頭已經來不及了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表