找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3054|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

stc12c5a想要在串口1接收到的內(nèi)容后加回車換行符號(hào)卻實(shí)現(xiàn)不了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:586906 發(fā)表于 2021-1-11 10:01 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
50黑幣
stc12c5a想要在串口1接收到的內(nèi)容后加回車換行符號(hào)后由串口2發(fā)送出去卻實(shí)現(xiàn)不了,有大佬能幫忙看看修改一下嗎?初始學(xué)徒比較菜
  1. #include<stc12c5a.h>

  2. #define S2RI 0x01        
  3. #define S2TI 0x02
  4. sbit RW=P1^7;
  5. unsigned char *a,*b;
  6. unsigned char flag1,flag2;
  7. void InitUART(void)
  8. {
  9.     TMOD = 0x20;   
  10.     SCON = 0x50;   
  11.     TH1 = 0xFA;           
  12.     TL1 = TH1;
  13.     TR1 = 1;           
  14.     EA =1;      
  15.     ES =1;        

  16.     S2CON = 0x50;   
  17.     BRT = 0xFA;         
  18.     AUXR = 0x10;   
  19.     IE2 =0x01;        
  20. }
  21. void UART_1SendOneByte(unsigned char c)
  22. {
  23.     SBUF = c;
  24.     while(!TI);           
  25.     TI = 0;         
  26. }
  27. void UART_2SendOneByte(unsigned char c)
  28. {
  29.                 RW=1;
  30.     S2BUF=c;
  31.     while(!(S2CON&S2TI));  
  32.     S2CON&=~S2TI;
  33.                 RW=0;
  34. }
  35. void uart1SendStr(unsigned char *s)
  36. {
  37.         while(*s!='\0')
  38.   {
  39.                 UART_1SendOneByte(*s);
  40.                 s++;
  41.   }
  42. }
  43. void uart2SendStr(unsigned char *s)
  44. {
  45.         while(*s!='\0')            
  46.   {
  47.   UART_2SendOneByte(*s);
  48.   s++;
  49.   }
  50. }
  51. void delay(unsigned int z)
  52. {
  53.         unsigned int x,y;
  54.         for(x=z;x>0;x--)
  55.         for(y=600;y>0;y--);
  56. }
  57. void main(void)
  58. {
  59.     InitUART();        
  60.     delay(50);
  61.     while(1)
  62.     {
  63.                                          
  64.       if(flag1==1)
  65.       {
  66.         flag1=0;
  67.         uart2SendStr(a);
  68.                         
  69.       }
  70.       if(flag2==1)
  71.       {
  72.         flag2=0;
  73.         uart1SendStr(b);
  74.       }
  75.      }
  76. }
  77. void UART_1Interrupt(void) interrupt 4
  78. {
  79.         if(RI==1)
  80.         {
  81.           RI=0;
  82.                                         *a=SBUF;
  83.                                         a+='\r';
  84.                                         a+='\n';
  85.                
  86.         }
  87. }
  88. void UART_2Interrupt(void) interrupt 8
  89. {
  90.         if(S2CON&S2RI)
  91.         {
  92.           S2CON&=~S2RI;
  93.           *b=S2BUF;
  94.         }
  95. }
復(fù)制代碼


04.zip

695 Bytes, 下載次數(shù): 3

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

使用道具 舉報(bào)

沙發(fā)
ID:752974 發(fā)表于 2021-1-11 11:32 | 只看該作者
回車符0x0D,換行符0x0A,添加后發(fā)送即可。或者加 '\r'是回車符,'\n'是換行符。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

板凳
ID:390416 發(fā)表于 2021-1-11 16:15 | 只看該作者
用我這個(gè)貼子的代碼就行 多字節(jié)發(fā)送 帶了 換行和回車 還支持軟件復(fù)位
你是STC12 可能定時(shí)器寄存器需要修改一下.
http://www.torrancerestoration.com/bbs/dpj-200927-1.html
回復(fù)

使用道具 舉報(bào)

地板
ID:586906 發(fā)表于 2021-1-11 16:25 | 只看該作者
添加了,可能是添加的不對(duì),實(shí)現(xiàn)不了
回復(fù)

使用道具 舉報(bào)

5#
ID:290373 發(fā)表于 2021-1-11 22:28 | 只看該作者
*a沒(méi)申請(qǐng)內(nèi)存
a+=是對(duì)地址操作而不是字符串
a申請(qǐng)時(shí)要用數(shù)組或者malloc
調(diào)用時(shí)用下標(biāo)形式或者string庫(kù)函數(shù)

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

6#
ID:373388 發(fā)表于 2021-1-11 23:39 | 只看該作者
把*a;定義成數(shù)組形式試一下, a[10];  a[0]  = SBUF;a[1] ='\r' ;a[2]  ='\n';a[3] = '\0';

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

7#
ID:586906 發(fā)表于 2021-1-12 15:05 | 只看該作者
謝謝各位大佬,我嘗試一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表