STM32 串列埠DMA(一)

2021-06-17 18:31:28 字數 888 閱讀 5928

今天調usart,資料在晶元內部用dma傳到串列埠快取,發現dma真的很好,很快,而且不消耗系統資源。只是在傳輸完的時候中斷的標誌置位。下面解釋一下程式。

void dma_configuration(void) 

再弄幾個重要的語句。

//這裡是開始dma傳輸前的一些準備工作,將usart1模組設定成dma方式工作 

usart_dmacmd(usart1, usart_dmareq_tx, enable); 

//開始一次dma傳輸! 

dma_cmd(dma1_channel4, enable); 

在串列埠配置的時候需要開啟串列埠接收中斷

usart_itconfig(usart1, usart_it_rxne, enable); 

相應的nvic

/設定nvic優先順序分組為group2:0-3搶占式優先順序,0-3的響應式優先順序 

nvic_prioritygroupconfig(nvic_prioritygroup_2); 

//串列埠接收中斷開啟    

nvic_initstructure.nvic_irqchannel = usart1_irqchannel; 

nvic_initstructure.nvic_irqchannelpreemptionpriority = 0; 

nvic_initstructure.nvic_irqchannelsubpriority = 1; 

nvic_initstructure.nvic_irqchannelcmd = enable; 

nvic_init(&nvic_initstructure); 

//啟動dma時鐘 

rcc_ahbperiphclockcmd(rcc_ahbperiph_dma1, enable); 

STM32串列埠 DMA使用1

stm32串列埠 dma使用 stm32有5個串列埠資源 usart1,usart2,usart3及uart4,uart5 其中3個usart 通用同步 非同步收 髮器universalsynchronous asynchronous receiver and transmitter 2個uart ...

stm32串列埠通訊

通訊方式 1 同步通訊 帶時鐘同步訊號傳輸 spi,iic等 2 非同步通訊 不帶時鐘用途訊號 usrt,單匯流排 stm32串列埠引腳表 串口號 rxd txd 1 pa10 pa9 2 pa3pa2 3 pb11 pb10 4 pc11 pc10 5 pd2pc12 通訊過程 接收過程 由rx入...

STM32串列埠通訊

1.常用的串列埠相關暫存器 1 usart sr狀態暫存器,對應的庫函式 flagstatus usart getflagstatus usart typedef usartx,uint16 t usart flag 2 usart dr資料暫存器,對應的庫函式 void usart senddat...