CH32V實現(xiàn)串口DMA、空閑中斷接收不定長數(shù)據(jù)
2023-07-10 16:55 作者:MCU-初學(xué)者 | 我要投稿
UART通訊是MCU中最常用的通訊方式,利用DMA方式接收數(shù)據(jù),并利用UART的空閑中斷,來接收來自用戶不定長的數(shù)據(jù)。
對于此功能,主要應(yīng)該注意以下幾點。參考了很多STM32關(guān)于此功能的講解與程序源碼。
?USART DMA 空閑中斷接收不定長數(shù)據(jù):
配置USART DMA接收功能。
?a. 使能時鐘,RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
?b. 配置 DMA1_Channel5,初始化。
?配置USART 功能。
?使能USART1對應(yīng)管腳的時鐘,USART1時鐘。
?配置并初始化發(fā)送、接收管腳。
3.? 配置中斷優(yōu)先級。配置并初始化USART1_IRQn的搶占優(yōu)先級、響應(yīng)優(yōu)先級,并初始化之。
?4.? 配置USART1的空閑中斷。USART_ITConfig(USART1, USART_IT_IDLE, ENABLE);
?5.? 使能USART1的DMA接收功能,USART_DMACmd(USART1, USART_DMAReq_Rx, ENABLE); // 開啟串口的DMA接收接收功能
?6.? 使能USART1,USART_Cmd(USART1, ENABLE);。
示例坐標(biāo):鏈接: https://pan.baidu.com/s/1OBKaOwFQ1iVHwldnmCHXtg?pwd=rv32 提取碼: rv32
標(biāo)簽: