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

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

QQ登錄

只需一步,快速開始

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

STM32F407單片機(jī)的6路串口接收發(fā)送DMA源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:609322 發(fā)表于 2023-8-25 13:16 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
STM32F407的6路串口接收發(fā)送DMA 例程

單片機(jī)源程序如下:
  1. /*
  2.         該工程為寄存器版本,不過在庫函數(shù)中仍可添加使用

  3. */
  4. #include "sys.h"
  5. #include "delay.h"  
  6. #include "usart.h"   
  7. #include "dma.h"
  8. #include "malloc.h"

  9. u8 TestData[10] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A};

  10. int main(void)
  11. {
  12.         Stm32_Clock_Init(336,8,2,7);//設(shè)置時(shí)鐘,168Mhz
  13.         delay_init(168);                        //延時(shí)初始化
  14.         
  15.         Init_USART1(84,115200);                //初始化串口波特率為115200
  16.         Init_USART2(42,115200);               
  17.         Init_USART3(42,115200);               
  18.         Init_UART4(42,115200);               
  19.         Init_UART5(42,115200);               
  20.         Init_USART6(84,115200);               

  21.         my_mem_init(SRAMIN);                //初始化內(nèi)部?jī)?nèi)存池
  22.         my_mem_init(SRAMCCM);                //初始化內(nèi)部CCM內(nèi)存池
  23.         
  24. //USART1發(fā)送 --- DMA2,數(shù)據(jù)流7,CH4---USART1_TXD 外設(shè)為串口1,存儲(chǔ)器為USART1_TX_BUF,長度為:USART_LEN
  25.         MYDMA_Config(DMA2_Stream7,4,(u32)&USART1->DR,(u32)USART1_TX_BUF,USART_LEN,DMA_DIR_MemoryToPeripheral);
  26. //USART1接收 --- DMA2,數(shù)據(jù)流5,CH4---USART1_RXD 外設(shè)為串口1,存儲(chǔ)器為USART1_RX_BUF,長度為:USART_LEN
  27.         MYDMA_Config(DMA2_Stream5,4,(u32)&USART1->DR,(u32)USART1_RX_BUF,USART_LEN,DMA_DIR_PeripheralToMemory);
  28.         MYDMA_Enable(DMA2_Stream5,(u32)USART1_RX_BUF,USART_LEN);//開始一次DMA傳輸!
  29.         
  30. //USART2發(fā)送 --- DMA1,數(shù)據(jù)流6,CH4---USART2_TXD 外設(shè)為串口2,存儲(chǔ)器為USART2_TX_BUF,長度為:USART_LEN
  31.         MYDMA_Config(DMA1_Stream6,4,(u32)&USART2->DR,(u32)USART2_TX_BUF,USART_LEN,DMA_DIR_MemoryToPeripheral);
  32. //USART2接收 --- DMA1,數(shù)據(jù)流5,CH4---USART2_RXD 外設(shè)為串口2,存儲(chǔ)器為USART2_RX_BUF,長度為:USART_LEN
  33.         MYDMA_Config(DMA1_Stream5,4,(u32)&USART2->DR,(u32)USART2_RX_BUF,USART_LEN,DMA_DIR_PeripheralToMemory);        
  34.         MYDMA_Enable(DMA1_Stream5,(u32)USART2_RX_BUF,USART_LEN);

  35. //USART3發(fā)送 --- DMA1,數(shù)據(jù)流3,CH4---USART3_TXD 外設(shè)為串口3,存儲(chǔ)器為USART3_TX_BUF,長度為:USART_LEN
  36.         MYDMA_Config(DMA1_Stream3,4,(u32)&USART3->DR,(u32)USART3_TX_BUF,USART_LEN,DMA_DIR_MemoryToPeripheral);
  37. //USART3接收 --- DMA1,數(shù)據(jù)流1,CH4---USART3_RXD 外設(shè)為串口3,存儲(chǔ)器為USART3_RX_BUF,長度為:USART_LEN
  38.         MYDMA_Config(DMA1_Stream1,4,(u32)&USART3->DR,(u32)USART3_RX_BUF,USART_LEN,DMA_DIR_PeripheralToMemory);        
  39.         MYDMA_Enable(DMA1_Stream1,(u32)USART3_RX_BUF,USART_LEN);

  40. //USART4發(fā)送 --- DMA1,數(shù)據(jù)流4,CH4---USART4_TXD 外設(shè)為串口4,存儲(chǔ)器為USART4_TX_BUF,長度為:USART_LEN
  41.         MYDMA_Config(DMA1_Stream4,4,(u32)&UART4->DR,(u32)UART4_TX_BUF,USART_LEN,DMA_DIR_MemoryToPeripheral);
  42. //USART4接收 --- DMA1,數(shù)據(jù)流2,CH4---USART4_RXD 外設(shè)為串口4,存儲(chǔ)器為USART4_RX_BUF,長度為:USART_LEN
  43.         MYDMA_Config(DMA1_Stream2,4,(u32)&UART4->DR,(u32)UART4_RX_BUF,USART_LEN,DMA_DIR_PeripheralToMemory);
  44.         MYDMA_Enable(DMA1_Stream2,(u32)UART4_RX_BUF,USART_LEN);
  45.         
  46. //USART5發(fā)送 --- DMA1,數(shù)據(jù)流7,CH4---UART5_TXD 外設(shè)為串口5,存儲(chǔ)器為UART5_TX_BUF,長度為:USART_LEN
  47.         MYDMA_Config(DMA1_Stream7,4,(u32)&UART5->DR,(u32)UART5_TX_BUF,USART_LEN,DMA_DIR_MemoryToPeripheral);
  48. //USART5接收 --- DMA1,數(shù)據(jù)流0,CH4---UART5_RXD 外設(shè)為串口5,存儲(chǔ)器為UART5_RX_BUF,長度為:USART_LEN
  49.         MYDMA_Config(DMA1_Stream0,4,(u32)&UART5->DR,(u32)UART5_RX_BUF,USART_LEN,DMA_DIR_PeripheralToMemory);
  50.         MYDMA_Enable(DMA1_Stream0,(u32)UART5_RX_BUF,USART_LEN);

  51. //USART6發(fā)送 --- DMA2,數(shù)據(jù)流6,CH5---USART6_TXD 外設(shè)為串口6,存儲(chǔ)器為USART6_TX_BUF,長度為:USART_LEN
  52.         MYDMA_Config(DMA2_Stream6,5,(u32)&USART6->DR,(u32)USART6_TX_BUF,USART_LEN,DMA_DIR_MemoryToPeripheral);
  53. //USART6接收 --- DMA2,數(shù)據(jù)流1,CH5---USART6_RXD 外設(shè)為串口6,存儲(chǔ)器為USART6_RX_BUF,長度為:USART_LEN
  54.         MYDMA_Config(DMA2_Stream1,5,(u32)&USART6->DR,(u32)USART6_RX_BUF,USART_LEN,DMA_DIR_PeripheralToMemory);
  55.         MYDMA_Enable(DMA2_Stream1,(u32)USART6_RX_BUF,USART_LEN);
  56.         
  57.         while(1)
  58.         {
  59. //                myDMAprintf(USART1,"usart = %d\tch = %f\r\n",1,1.567);
  60. //                myDMAprintf(USART2,"usart = %d\tch = %f\r\n",2,1.567);
  61.                 myDMAprintf(USART3,"usart = %d\tch = %f\r\n",3,1.567);
  62.                 myDMAprintf(USART3,"usart = %d\tch = %f\r\n",3,1.567);
  63. //                myDMAprintf(UART4,"usart = %d\tch = %f\r\n",4,1.567);
  64. //                myDMAprintf(UART5,"usart = %d\tch = %f\r\n",5,1.567);
  65.                 myDMAprintf(USART6,"usart = %d\tch = %f\r\n",6,1.567);
  66.                 myDMAprintf(USART6,"usart = %d\tch = %f\r\n",6,1.567);
  67.                
  68. //                myDMAarray(USART1,(u32)TestData,10);
  69. //                myDMAarray(USART2,(u32)TestData,10);
  70. //                myDMAarray(USART3,(u32)TestData,10);
  71. //                myDMAarray(USART3,(u32)TestData,10);
  72. //                myDMAarray(UART4,(u32)TestData,10);
  73. //                myDMAarray(UART5,(u32)TestData,10);
  74. //                myDMAarray(USART6,(u32)TestData,10);
  75. //                myDMAarray(USART6,(u32)TestData,10);                  
  76.                
  77.                 delay_ms(1000);
  78.         }
  79. }
復(fù)制代碼

原理圖: 無
仿真: 無
代碼: DMA發(fā)送&接收.7z (87.28 KB, 下載次數(shù): 47)

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:195496 發(fā)表于 2023-8-30 21:55 | 只看該作者
先下載,有空研究學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品三级在线观看 | 天堂va在线| 国产专区在线 | 九九热最新地址 | 国产乱码高清区二区三区在线 | 激情一区 | 一区二区三区精品视频 | 蜜桃日韩 | 成人不卡| 日本亚洲精品成人欧美一区 | 亚洲视频在线一区 | 亚洲日韩中文字幕一区 | 欧美二三区 | 久久久www成人免费精品 | 日韩二区 | 欧美影院久久 | 日韩一区二区三区在线 | 精品免费国产 | 亚洲一区二区视频在线播放 | 中文字幕高清av | 亚洲精品女优 | 免费超碰 | 女同久久另类99精品国产 | 99久久精品免费看国产免费软件 | av电影一区 | 欧美一区二区二区 | 欧美精品成人一区二区三区四区 | 日韩精品a在线观看图片 | 成人av高清在线观看 | 亚洲精品中文字幕在线观看 | 中文字幕日韩一区 | 国产精品欧美日韩 | 日韩高清电影 | 亚洲激情综合网 | 国产精品久久久爽爽爽麻豆色哟哟 | 91久久精品日日躁夜夜躁国产 | 亚洲综合中文字幕在线观看 | 亚洲成人精品 | 狠狠干2020 | 欧美一级二级三级 | 中文字幕免费在线 |