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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2537|回復: 4
收起左側

為什么我用單片機串口發一個數組的內容出去,順序是亂的?

[復制鏈接]
ID:735654 發表于 2021-1-15 19:55 | 顯示全部樓層 |閱讀模式
  1. /*uart.c*/
  2. #define uc unsigned char
  3. #define ui unsigned int
  4. #define ul unsigned long
  5. #define iuc idata unsigned char
  6. #define iui idata unsigned int
  7. #define iul idata unsigned long
  8. #define bt bit
  9. #define swch switch
  10. #define cs case
  11. #define whl while
  12. #define rtn return
  13. #define brk break
  14. #define itrpt interrupt

  15. uart_init(bt xos)
  16. {
  17. if(xos==1)
  18.   {
  19.   P_SW2|=0x80; /*啟動內部擴展區寄存器訪問功能*/
  20.   XOSCCR|=0xc0; /*啟動外部晶振*/
  21.   while(!(XOSCCR & 1)); /*待晶振頻率穩定*/
  22.   CLKDIV=0x00; /*晶振不分頻*/
  23.   CKSEL=0x01; /*選用外部晶振*/
  24.   }
  25. SCON=0x50;   /*設定串口工作方式*/
  26. TMOD|=0x21;  /*設置T0T1寄存器*/
  27. AUXR=0xfc;  /*配置輔助寄存器*/
  28. TL1=TH1=0xdc; /*設置波特率為9.6kbit/s*/
  29. TR1=1;
  30. REN=1; /*允許接收串口數據*/
  31. EA=1;  /*打開總中斷*/
  32. ES=1; /*打開串口中斷*/
  33. P3M1=0x01; /*00000001*/
  34. P3M0=0x02; /*00000010,將串口接收口設為高阻輸入模式,發送口設置為強推挽模式*/
  35. }

  36. uart_txd(uc buf[])
  37. {
  38. iui i;
  39. iui j=sizeof(buf);
  40. TI=RI=0;
  41. for(i=0;i<j;i++)
  42.   {
  43.   SBUF=buf[i];
  44.   while(TI==0)
  45.     {
  46.     ;
  47.     }
  48.   TI=0;
  49.   }
  50. }

  51. /*—————————————兩個文件的分割線—————————————*/
  52. /*main.c*/

  53. #include <STC8x.H>
  54. #include <UART.H>

  55. iui txdbuf[13]={'H','E','L','L','O',' ','W','O','R','L','D','!','\0'};

  56. main()
  57. {
  58. uart_init(0);
  59. while(1)
  60.   {
  61.   uart_txd(txdbuf);
  62.   }
  63. }
復制代碼
回復

使用道具 舉報

ID:390416 發表于 2021-1-15 21:02 | 顯示全部樓層
分享給你這個貼子,STC單片機串口發送 不需要while死等。http://m.raoushi.com/bbs/dpj-200927-1.html
使用STC15W4K核心板調試串口1,晶振30M,波特率9600。需要發送的時候,Uart1_Flag=1即可發送一包數據。這樣的代碼CPU效率更高。
回復

使用道具 舉報

ID:752974 發表于 2021-1-16 12:59 | 顯示全部樓層
樓主說的亂不是發送的數據亂還是接收到的數據亂。在通信中通信的兩方的通信參數必須設定一致,按著定好的協議收發數據,不然就易出問題。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:878235 發表于 2021-1-16 23:25 | 顯示全部樓層
接收的時候,要想辦法判斷開始,接收的過程有可能丟失數據,所以要有校驗碼

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:878235 發表于 2021-1-16 23:25 | 顯示全部樓層
接收的時候,要知道從哪里開始,到哪里結束,校驗碼也是要有的,因為有可能丟失數據

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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