欢迎光临散文网 会员登陆 & 注册

CH32V实现串口DMA、空闲中断接收不定长数据

2023-07-10 16:55 作者:MCU-初学者  | 我要投稿

UART通讯是MCU中最常用的通讯方式,利用DMA方式接收数据,并利用UART的空闲中断,来接收来自用户不定长的数据。

对于此功能,主要应该注意以下几点。参考了很多STM32关于此功能的讲解与程序源码。

 USART DMA 空闲中断接收不定长数据:

  1. 配置USART DMA接收功能。

     a. 使能时钟,RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

     b. 配置 DMA1_Channel5,初始化。

  2.  配置USART 功能。

  •  使能USART1对应管脚的时钟,USART1时钟。

  •  配置并初始化发送、接收管脚。

3.  配置中断优先级。配置并初始化USART1_IRQn的抢占优先级、响应优先级,并初始化之。

 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);。


示例坐标:链接: https://pan.baidu.com/s/1OBKaOwFQ1iVHwldnmCHXtg?pwd=rv32 提取码: rv32

CH32V实现串口DMA、空闲中断接收不定长数据的评论 (共 条)

分享到微博请遵守国家法律