標題: stm32f103c8t6多串口例程源程序 [打印本頁]

作者: wyqf    時間: 2021-2-14 19:49
標題: stm32f103c8t6多串口例程源程序
在正點原子的串口例程上修改的配置了c8t6的全部串口(3個),并把串口數(shù)據(jù)從接收端發(fā)送出去
僅作為一個例程庫使用

單片機源程序如下:
  1. #include "sys.h"
  2. #include "usart.h"               
  3. #include "delay.h"       
  4. #include "led.h"
  5. #include "key.h"
  6. //ALIENTEK Mini STM32開發(fā)板范例代碼3
  7. //串口實驗   

  8. int main(void)
  9. {                       
  10.         u8 t;
  11.         u8 len;         
  12.         Stm32_Clock_Init(9); //系統(tǒng)時鐘設置
  13.         delay_init(72);             //延時初始化
  14.         uart1_init(72,9600);         //串口初始化為9600
  15.         uart2_init(72,9600);         //串口初始化為9600
  16.         uart3_init(72,9600);         //串口初始化為9600
  17.         LED_Init();                           //初始化與LED連接的硬件接口   
  18.         while(1)
  19.         {
  20.                 if(USART1_RX_STA&0x8000)
  21.                 {                                          
  22.                         len=USART1_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長度
  23.                         printf("\r\n您發(fā)送的消息為:\r\n");
  24.                         for(t=0;t<len;t++)
  25.                         {
  26.                                 USART1->DR=USART1_RX_BUF[t];
  27.                                 while((USART1->SR&0X40)==0);//等待發(fā)送結束
  28.                         }
  29.                         printf("\r\n\r\n");//插入換行
  30.                         USART1_RX_STA=0;
  31.                 }
  32.                 if(USART2_RX_STA&0x8000)
  33.                 {                                          
  34.                         len=USART2_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長度
  35.                         printf("\r\n您發(fā)送的消息為:\r\n");
  36.                         for(t=0;t<len;t++)
  37.                         {
  38.                                 USART2->DR=USART2_RX_BUF[t];
  39.                                 while((USART2->SR&0X40)==0);//等待發(fā)送結束
  40.                         }
  41.                         printf("\r\n\r\n");//插入換行
  42.                         USART2_RX_STA=0;
  43.                 }
  44.                 if(USART3_RX_STA&0x8000)
  45.                 {                                          
  46.                         len=USART3_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長度
  47.                         printf("\r\n您發(fā)送的消息為:\r\n");
  48.                         for(t=0;t<len;t++)
  49.                         {
  50.                                 USART3->DR=USART3_RX_BUF[t];
  51.                                 while((USART3->SR&0X40)==0);//等待發(fā)送結束
  52.                         }
  53.                         printf("\r\n\r\n");//插入換行
  54.                         USART3_RX_STA=0;
  55.                 }
  56.         }         
  57. }
復制代碼

所有程序51hei提供下載:
c8t6多串口(成功)把接收到的數(shù)據(jù)發(fā)送出來.7z (83.89 KB, 下載次數(shù): 270)




作者: mouse_ox    時間: 2021-2-15 12:06
多串口例程學習一下!
作者: YEON丶丶    時間: 2021-3-27 14:42
ganxiefenxiang
作者: bd4sl    時間: 2021-4-15 22:42
真好需要這方面資料學習
作者: 美琴的備胎    時間: 2021-4-20 20:40
這個不行的  下載到c8t6一個都運行不了
作者: wyqf    時間: 2021-5-16 20:26
美琴的備胎 發(fā)表于 2021-4-20 20:40
這個不行的  下載到c8t6一個都運行不了

是不是波特率設置錯誤,我自己實測可用
作者: banzhiyang    時間: 2023-10-6 10:20
剛好要學習到,好東西,感謝分享。。!
作者: wenhuaxiao    時間: 2024-6-10 10:03
正要用到3個串口,謝謝了




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