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

QQ登錄

只需一步,快速開始

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

自己寫的stm32串口和DMA的配合程序的分享

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:124010 發(fā)表于 2018-7-4 16:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
現(xiàn)在寫了發(fā)送和接收,接收的時(shí)候需要一個(gè)緩沖區(qū),兩個(gè)程序用的都是串口1,PA9和PA10,可以直接運(yùn)行現(xiàn)在是數(shù)據(jù)從內(nèi)存到數(shù)據(jù)寄存器、從數(shù)據(jù)寄存器到內(nèi)存。
大家有哪些DMA和串口配合的程序也可以分享,我暫時(shí)就想到這兩個(gè)
DMA串口接收數(shù)據(jù)寄存器到內(nèi)存.rar (315.29 KB, 下載次數(shù): 20)
DMA串口發(fā)送內(nèi)存到數(shù)據(jù)寄存器.rar (315.42 KB, 下載次數(shù): 13)


stm32單片機(jī)源程序如下:
  1. /* Includes ------------------------------------------------------------------*/
  2. #include        "stm32f10x.h"
  3. #include        "bsp.h"
  4. #include        "tim.h"
  5. #include        "delay.h"
  6. #include        "bitband.h"
  7. #include        "usart.h"
  8. #include        "dma.h"
  9. /* Private define ------------------------------------------------------------*/

  10. /* Private variables ---------------------------------------------------------*/
  11. uint8_t Sendbuff[3000]={0};//定義外部變量數(shù)組

  12. /* Private function prototypes -----------------------------------------------*/

  13. /* Private functions ---------------------------------------------------------*/

  14. /**
  15.   * @brief   Main program
  16.   * @param  None
  17.   * @retval None
  18.   */
  19. int main(void)
  20. {
  21.         /* Private variables ---------------------------------------------------------*/
  22.         u32 i;
  23.         /* User Code ---------------------------------------------------------*/
  24.         BSP_Config();
  25.         delay_init();
  26.         usart_config();
  27.         usart_gpio_config();
  28.         DMA_Config();
  29. //在內(nèi)存中存儲(chǔ)3000個(gè)數(shù)據(jù),
  30.         for(i=0;i<1000;i++){Sendbuff[i]='A';}
  31.         for(i=1000;i<2000;i++){Sendbuff[i]='B';}
  32.         for(i=2000;i<3000;i++){Sendbuff[i]='C';}
  33.         DMA_Cmd(DMA1_Channel4, ENABLE);//使能DMA通道4
  34.         USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);//串口1發(fā)送DMA請(qǐng)求
  35.         /* Main Loop ---------------------------------------------------------*/
  36.         while(1)
  37.         {       
  38.                         LED1_ON();
  39.                         delay_ms(500);
  40.                         LED1_OFF();
  41.                         delay_ms(500);
  42.         }
  43. }
  44. /* Private functions ---------------------------------------------------------*/


復(fù)制代碼

評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:124010 發(fā)表于 2018-7-4 17:26 | 只看該作者
求一個(gè)DMA和USART 收發(fā)不定長(zhǎng)數(shù)據(jù)的程序,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表