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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1705|回復: 1
收起左側

ST15F2K60S2單片機同時使用兩個串口,單此程序只能實現(xiàn)串口一的數(shù)據(jù)發(fā)送到串口二

[復制鏈接]
回帖獎勵 50 黑幣 回復本帖可獲得 5 黑幣獎勵! 每人限 1 次
ID:324319 發(fā)表于 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. }
復制代碼


回復

使用道具 舉報

ID:324319 發(fā)表于 2018-12-20 19:12 | 顯示全部樓層
來個大佬幫忙看看啊,串口一的數(shù)據(jù)可以發(fā)到串口二,但是串口2的數(shù)據(jù)無法發(fā)到串口一
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 婷婷精品| 久草免费视 | 神马久久av | 成人在线免费观看视频 | 久久久精品一区二区三区 | 日韩精品成人网 | 黄色在线网站 | 亚洲精品三级 | 欧美伊人久久久久久久久影院 | 国产成人精品一区二区三区 | 中文字幕在线免费观看 | 日本在线视频一区二区 | 国产在线精品一区二区三区 | 久久久青草婷婷精品综合日韩 | 91人人爽| 天天影视亚洲综合网 | 成人免费视频网站在线看 | 国产精品二区三区在线观看 | 亚洲高清在线 | 国产亚洲精品久久久久久豆腐 | 日韩字幕一区 | 日韩一级精品视频在线观看 | 91视频一区二区三区 | 成人不卡一区二区 | 精品产国自在拍 | 久久一二| 蜜桃视频在线观看免费视频网站www | 国产成人精品一区二 | 日韩精品免费 | 欧美电影一区 | 国产成人福利在线观看 | 久久久久亚洲av毛片大全 | 一区二区国产在线观看 | 青青草精品视频 | 日本精品在线一区 | 欧美高清视频在线观看 | 久久国产欧美一区二区三区精品 | 国产三级精品三级在线观看四季网 | 国产精品日日做人人爱 | 欧美精品1区 |