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

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

QQ登錄

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

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

STM32F407VET6-100P單片機(jī)串口1和串口2數(shù)據(jù)互通源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:744356 發(fā)表于 2022-12-30 16:27 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STM32F407VET6-100P串口1和串口2數(shù)據(jù)互通,串口2我連接的是WIfi模塊。所以下載的小伙伴可以自己做出判斷是用USB轉(zhuǎn)TTL。這個(gè)我試過(guò),是可行的。
串口實(shí)驗(yàn)中的PA9和PA10已經(jīng)復(fù)用映射了。PA9對(duì)應(yīng)TX,PA10對(duì)應(yīng)RX.

使用usart2,所以printf不可以在串口2的收發(fā)函數(shù)里出現(xiàn),不然串口1會(huì)對(duì)串口2產(chǎn)生干擾。

單片機(jī)源程序如下:
main.c文件
  1. #include "sys.h"   
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "usart2.h"
  5. #include "led.h"
  6. #include "beep.h"
  7. #include "key.h"
  8. int main(void)
  9. {

  10.         u8 t;
  11.         u8 len;        
  12.         u8 len2;
  13.         u16 times=0;
  14.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置系統(tǒng)中斷優(yōu)先級(jí)分組2
  15.         delay_init(168);                //延時(shí)初始化
  16.   uart_init(115200); //串口1初始化波特率為115200
  17.         uart2_init(115200);//串口2初始化波特率為115200
  18.         LED_Init();        
  19.         while(1)
  20.         {


  21.                 if(USART_RX_STA&0x8000)
  22.                 {                                          
  23.                         len=USART_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長(zhǎng)度
  24.       printf("\r\n您發(fā)送的消息為:");
  25.                         for(t=0;t<len;t++)
  26.                         {
  27.         USART_SendData(USART2, USART_RX_BUF[t]);//將串口1收到的數(shù)據(jù)轉(zhuǎn)發(fā)給串口2輸出
  28.                                 while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束        
  29.       printf("\r\n");//插入換行                                
  30.                         }
  31. //                  printf("電腦send to串口1的數(shù)據(jù)為:\r\n");
  32.                         for(t=0;t<len;t++)
  33.                         {
  34.                                 USART_SendData(USART1, USART_RX_BUF[t]);//單片機(jī)通過(guò)串口1發(fā)送數(shù)據(jù)給電腦
  35.                                 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
  36. //                        printf("\r\n發(fā)送成功\r\n");//插入換行
  37.                         }
  38.        printf("\r\n");//插入換行
  39.                          USART_RX_STA=0;


  40.                 }
  41.                 if(USART2_RX_STA&0x8000)
  42.                 {                                          
  43.                         len2=USART2_RX_STA&0x3fff;//得到此次接收到的數(shù)據(jù)長(zhǎng)度
  44. //                        printf("\r\n您發(fā)送的消息為:");
  45.                         for(t=0;t<len2;t++)
  46.                         {
  47.                                 USART_SendData(USART2, USART2_RX_BUF[t]);//單片機(jī)通過(guò)串口2給電腦發(fā)數(shù)據(jù)(作用:提示另一個(gè)串口接收到的數(shù)據(jù)是什么)
  48.                                 while(USART_GetFlagStatus(USART2,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
  49.                         }        
  50.       //printf("電腦 send to串口1的數(shù)據(jù)為:\r\n");
  51. //      printf("\r\n");//作為指令響應(yīng)的開(kāi)頭               
  52.                         for(t=0;t<len2;t++)
  53.                         {
  54.                                 USART_SendData(USART1, USART2_RX_BUF[t]);//將串口2收到的數(shù)據(jù)轉(zhuǎn)發(fā)給串口1輸出
  55.                                 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待發(fā)送結(jié)束
  56.                         }                        
  57. //                        printf("\r\n");//插入換行               
  58.                         USART2_RX_STA=0;
  59.                 }
  60.                 else
  61.                 {
  62.                         times++;
  63.                         if(times%5000==0)
  64.                         {
  65.                              LED1=!LED1;
  66.                         }
  67.                         if(times%30==0)LED0=!LED0;  //閃爍LED,提示系統(tǒng)正在運(yùn)行
  68.                         delay_ms(10);
  69.                 }                        
  70.   }
  71. }

復(fù)制代碼

Keil代碼下載: 代碼 串口1和串口2數(shù)據(jù)互傳.7z (570.41 KB, 下載次數(shù): 25)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:744356 發(fā)表于 2022-12-30 16:28 | 只看該作者
發(fā)數(shù)據(jù)的時(shí)候記得加回車鍵
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久成人一区 | 最新日韩欧美 | 99re6在线视频精品免费 | 波多野结衣精品在线 | 99精品在线 | 欧美一级久久 | 一区二区三区中文字幕 | 香蕉久久a毛片 | www精品| 在线观看国产视频 | 亚洲在线电影 | 久久精品二区亚洲w码 | 国产一区在线免费 | 欧美日韩亚洲国产 | 欧美成人手机视频 | 午夜精品久久久久久不卡欧美一级 | 国产精品美女久久久久aⅴ国产馆 | 一区二区三区四区在线免费观看 | 精品久久一区二区三区 | 亚洲国产精品一区二区第一页 | 欧美激情一区二区三级高清视频 | 日本精品在线观看 | 久久一 | 久久88| 国产亚洲一级 | 久久99网| 中文一级片 | 亚洲伊人a | 亚洲人成人一区二区在线观看 | 久久噜噜噜精品国产亚洲综合 | 国产精品久久国产精品99 | 亚洲精品一区二区在线观看 | 日韩中文在线 | 亚洲精品欧美一区二区三区 | 亚洲视频第一页 | 日日夜夜精品免费视频 | 91看片在线观看 | 无码日韩精品一区二区免费 | av日韩精品 | 亚洲日本欧美日韩高观看 | 久草精品视频 |