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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

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

使用usart2,所以printf不可以在串口2的收發(fā)函數(shù)里出現(xiàn),不然串口1會對串口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)先級分組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ù)長度
  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ī)通過串口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ù)長度
  44. //                        printf("\r\n您發(fā)送的消息為:");
  45.                         for(t=0;t<len2;t++)
  46.                         {
  47.                                 USART_SendData(USART2, USART2_RX_BUF[t]);//單片機(jī)通過串口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)的開頭               
  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)

評分

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

查看全部評分

分享到:  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ù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品一区二区三区 | 亚洲视频在线观看 | 欧美a级成人淫片免费看 | 久久精品亚洲国产奇米99 | 最新国产视频 | 国产精品久久精品 | 久久国产一区二区三区 | 一级a性色生活片久久毛片 一级特黄a大片 | 国产三级在线观看播放 | 国产一区二区三区 | 成人免费av在线 | 黄色av一区 | 日韩精品在线一区 | 久久国产欧美日韩精品 | 成人黄色在线观看 | 精品久久久久久国产 | 欧美日本韩国一区二区三区 | 国产精品久久久久久久久免费相片 | 黄色av网站在线观看 | 韩国av网站在线观看 | 日韩一区中文字幕 | 亚洲精品一区二区三区 | 午夜成人免费电影 | 精品国产精品三级精品av网址 | 午夜影院网站 | 亚洲免费在线观看av | 日本视频在线播放 | 国产999精品久久久久久绿帽 | 亚洲在线视频 | 99视频免费播放 | 精品一区二区视频 | 精品国产一区二区三区久久影院 | 中文字幕国产精品 | 欧美色性| 天天色天天色 | 久久亚洲一区 | 精品久久久久久 | 99精品在线观看 | 国产精品久久九九 | 九九热免费看 | 精品视频一区二区三区在线观看 |