久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

ST15F2K60S2單片機同時使用兩個串口,單此程序只能實現串口一的數據發送到串口二

[復制鏈接]
回帖獎勵 50 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主
ID:324319 發表于 2018-12-20 19:11 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機代碼:
  1. #include <stc15f2k60s2.h>
  2. #include <STDIO.H>
  3. #include <INTRINS.H>

  4. #define U8 unsigned char
  5. #define U16 unsigned int
  6. #define U32 unsigned long
  7. #define FOSC 11059200L  
  8. #define BAUD 9600   
  9. #define TM (65536 - (FOSC/4/BAUD))
  10. sbit DIR = P3^2;
  11. sbit DIR2 = P3^3;

  12. #define S2RI 0x01
  13. #define S2TI 0x02

  14. bit flagTxd = 0;
  15. bit flagTxd2 = 0;
  16. U8 cntRxd = 0;
  17. U8 cntRxd2 = 0;
  18. U8 flagRxd = 0;
  19. U8 flagRxd2 = 0;
  20. U8 pdata bufRxd[64];
  21. U8 pdata bufRxd2[64];


  22. void Delay1ms()
  23. {
  24. unsigned char i, j;
  25. _nop_();
  26. _nop_();
  27. _nop_();
  28. i = 11;
  29. j = 190;
  30. do
  31. {
  32.   while (--j);
  33. } while (--i);
  34. }

  35. void Delay(unsigned int i)
  36. {
  37.   do
  38. {
  39.    Delay1ms();
  40. } while (--i);
  41. }


  42. void UartInit(void)
  43. {
  44. SCON = 0x50;
  45. S2CON =0X50;
  46. AUXR |= 0x01;
  47. AUXR |= 0x04;
  48. T2L = 0xE0;
  49. T2H = 0xFe;
  50. AUXR |= 0x10;
  51. ES = 1;
  52. IE2 = 0x01;
  53. EA = 1;
  54. }
  55. void UartWrite(U8 *buf, U8 len)
  56. {
  57. DIR = 1;
  58. while (len--)
  59. {
  60.   flagTxd = 0;
  61.   SBUF = *buf++;
  62.   while (!flagTxd);
  63. }
  64.   Delay(1);
  65.   DIR = 0;
  66. }
  67. void UartWrite2(U8 *buf, U8 len)
  68. {
  69.   DIR2 = 1;
  70.   while (len--)
  71. {
  72.   flagTxd2 = 0;
  73.   S2BUF = *buf++;
  74.   while (!flagTxd2);
  75. }
  76.   Delay(1);
  77.   DIR2 = 0;
  78. }
  79. void main (void)
  80. {
  81. U8 pdata Data[64];
  82. U8 pdata Data2[64];
  83. U8 i;
  84. UartInit();
  85. while(1)
  86. {
  87.    DIR = 0;
  88.    if (flagRxd==1)
  89.    {
  90.     Delay(7);
  91.     for (i=0;i<cntRxd;i++)
  92.       {
  93.         Data[i]=bufRxd[i];
  94.    }
  95.       UartWrite2(Data,cntRxd);
  96.       cntRxd=0;
  97.       flagRxd=0;
  98. }
  99.    DIR2 = 0;
  100.      if (flagRxd2==1)
  101.     {
  102.   Delay(7);
  103.   for (i=0;i<cntRxd2;i++)
  104.        {
  105.          Data2[i]=bufRxd2[i];
  106.        }
  107.      UartWrite(Data2,cntRxd2);
  108.      cntRxd2=0;
  109.      flagRxd2=0;
  110.   }
  111. }
  112. }


  113. void InterruptUART() interrupt 4
  114. {
  115. if (RI)
  116. {
  117. RI = 0;
  118. flagRxd=1;
  119. if (cntRxd < sizeof(bufRxd))
  120. {
  121. bufRxd[cntRxd++] = SBUF;
  122. }
  123. }
  124. if (TI)
  125. {
  126. TI = 0;
  127. flagTxd = 1;
  128. }
  129. }


  130. void InterruptUART2() interrupt 8
  131. {
  132. if (S2CON & S2RI)
  133. {
  134. S2CON &= ~S2RI;
  135. flagRxd2=1;
  136. if (cntRxd2 < sizeof(bufRxd2))
  137. {
  138.    bufRxd2[cntRxd2++] = S2BUF;
  139. }
  140. }
  141. if (S2CON & S2TI)
  142. {
  143. S2CON &= ~S2TI;
  144. flagTxd2 = 1;
  145. }
  146. }
復制代碼


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

使用道具 舉報

沙發
ID:324319 發表于 2018-12-20 19:12 | 只看該作者
來個大佬幫忙看看啊,串口一的數據可以發到串口二,但是串口2的數據無法發到串口一
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品乱码一区二区三四区 | aaa天堂| 精品欧美一区二区在线观看视频 | 美女天天干 | 国产91丝袜在线播放 | 欧美一区二区三区在线观看视频 | 三级高清 | 免费午夜视频 | 国产区精品 | 日韩精品无码一区二区三区 | 色播久久 | 毛片av免费看 | 亚洲一区二区三区在线免费观看 | 亚洲欧美中文日韩在线v日本 | 欧美理伦片在线播放 | 国产成人自拍av | www.五月天婷婷 | 国产精品久久久久一区二区三区 | 久在线观看 | 男女网站免费观看 | 中文在线一区二区 | 国产福利在线免费观看 | 黄色网页在线观看 | 成人免费视频网站在线看 | 欧美日韩三级视频 | 国产精品一区二区三区四区 | 午夜伦理影院 | 性色视频在线观看 | 91社影院在线观看 | 成人国产午夜在线观看 | 国产乱码精品一区二区三区中文 | 美女天天操 | 亚洲精品久久久久中文字幕二区 | 久久精品在线免费视频 | 色婷婷亚洲国产女人的天堂 | 欧美精品一区二区在线观看 | 亚洲精品二区 | 欧美 中文字幕 | 国产成人综合亚洲欧美94在线 | 成人av在线播放 | 欧美视频三区 |