標(biāo)題: 兩個(gè)STM32串口相互通信的實(shí)現(xiàn)程序 [打印本頁]

作者: H321880947    時(shí)間: 2019-5-12 13:31
標(biāo)題: 兩個(gè)STM32串口相互通信的實(shí)現(xiàn)程序
網(wǎng)上的例子,大家相互交流交流

單片機(jī)源程序如下:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"

  6. int main(void)
  7. {
  8.         u16 t;  
  9.         u16 len;       
  10.         u16 times=0;
  11.         delay_init();                     //延時(shí)函數(shù)初始化          
  12.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
  13.         uart_init2(115200);         //串口初始化為115200
  14.         uart_init(115200);
  15.         LED_Init();                             //LED端口初始化
  16.         KEY_Init();          //初始化與按鍵連接的硬件接口
  17.         while(1)
  18.         {               
  19.                 if(USART_RX_STA&0x8000)
  20.                 {                                          
  21.                         len=USART_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長度
  22.                         printf("\r\n您發(fā)送的消息為:\r\n\r\n");
  23.                         for(t=0;t<len;t++)
  24.                         {
  25.                                 USART_SendData(USART2, USART_RX_BUF[t]);       //向串口2發(fā)送數(shù)據(jù)
  26.                                 while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET); //等待發(fā)送結(jié)束
  27.                         }
  28.                         printf("\r\n\r\n");//插入換行
  29.                         USART_RX_STA=0;
  30.                        
  31.                 }else
  32.                 {
  33.                         times++;
  34.                         if(times%5000==0)
  35.                         {
  36.                                 printf("\r\n戰(zhàn)艦STM32開發(fā)板 串口實(shí)驗(yàn)\r\n");
  37.                                 printf("正點(diǎn)原子@ALIENTEK\r\n\r\n");
  38.                         }
  39.                         if(times%200==0)printf("請(qǐng)輸入數(shù)據(jù),以回車鍵結(jié)束\n");
  40.                         if(times%30==0)LED0=!LED0;//閃爍LED,提示系統(tǒng)正在運(yùn)行.
  41.                         delay_ms(10);   
  42.                 }
  43.         }
  44. }
復(fù)制代碼

所有資料51hei提供下載:
戰(zhàn)艦: 串口1發(fā)送串口2接收.7z (187.84 KB, 下載次數(shù): 227)



作者: qq892947910    時(shí)間: 2019-7-3 08:38
實(shí)驗(yàn)器材:
        戰(zhàn)艦STM32F103開發(fā)板V3版本
       
實(shí)驗(yàn)?zāi)康?
        學(xué)習(xí)串口的使用(接收與發(fā)送)
       
硬件資源:
        1,DS0(連接在PB5)  
        2,串口1(波特率:115200,PA9/PA10連接在板載USB轉(zhuǎn)串口芯片CH340上面)
       
實(shí)驗(yàn)現(xiàn)象:
        本實(shí)驗(yàn),STM32通過串口1和上位機(jī)對(duì)話,STM32在收到上位機(jī)發(fā)過來的字符串(以回車換
        行結(jié)束)后,        原原本本的返回給上位機(jī)。下載后,DS0閃爍,提示程序在運(yùn)行,同時(shí)每
        隔一定時(shí)間,通過串口1輸出一段信息到電腦。
       
注意事項(xiàng):
        1,電腦端串口調(diào)試助手波特率必須是115200.
        2,請(qǐng)使用XCOM/SSCOM串口調(diào)試助手,其他串口助手可能控制DTR/RTS導(dǎo)致MCU復(fù)位/程序不運(yùn)行
        3,串口輸入字符串以回車換行結(jié)束.
        4,請(qǐng)用USB線連接在USB_232,找到USB轉(zhuǎn)串口后測(cè)試本例程.
        5,P4的PA9/PA10必須通過跳線帽連接在RXD/TXD上.
和主題兩塊板之間的串口通信沒有直接關(guān)系,算是有一點(diǎn)點(diǎn)用。
作者: 叫我紅領(lǐng)巾    時(shí)間: 2019-9-24 16:36
說來說去就是一塊板子和電腦串口通信 標(biāo)題太容易誤導(dǎo)了
作者: esmember    時(shí)間: 2020-6-23 15:48
(⊙o⊙)…,怎么感覺老被坑進(jìn)來。跟電腦連就標(biāo)識(shí)一下,我想單片機(jī)跟單片機(jī)之間連。
作者: linabei    時(shí)間: 2021-8-8 21:20
esmember 發(fā)表于 2020-6-23 15:48
(⊙o⊙)…,怎么感覺老被坑進(jìn)來。跟電腦連就標(biāo)識(shí)一下,我想單片機(jī)跟單片機(jī)之間連。

你解決了嘛
作者: 0313    時(shí)間: 2022-4-15 10:11
esmember 發(fā)表于 2020-6-23 15:48
(⊙o⊙)…,怎么感覺老被坑進(jìn)來。跟電腦連就標(biāo)識(shí)一下,我想單片機(jī)跟單片機(jī)之間連。

有找到相關(guān)辦法了嗎?單片機(jī)與單片機(jī)之間的通信




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1