1 / 8
文档名称:

STM32使用DMA加串口空闲中断接收数据.docx

格式:docx   大小:153KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM32使用DMA加串口空闲中断接收数据.docx

上传人:fengruiling 2022/7/24 文件大小:153 KB

下载得到文件列表

STM32使用DMA加串口空闲中断接收数据.docx

文档介绍

文档介绍:Ml

STM32中,需要用串口接收数据,是使用串口中断来接收数据。但是用这种方法的话, 就要频繁进入串口中断,然后处理,效率就比较低。于是就想到用DMA来接收串口数据,这 个STM32也是支持的。但是关键的一点,怎么知道数据接收完毕然接收数据就会一直产生中断了。
2、 DMA配置
DMA配置,要先查看串口接收是使用的哪个DMA的哪个通道,对于USART1_RX使用的是 DMA1的5通道。
usaku tx nwi ctti ■til: TR1& Tibi COM
Tlh6*_CH2 I3"d狂 ~t~J£
ll&AffTS -TK n^i ^ki TiMi LIP -ir*n do ^Pll RX
IfSAFTTSR^ PW1_C«2 T 吟 fJ-M Tlha^LiP MPIL IK
SSAfWE HX

~tSwTuf fiPI44SS_™
TWJ3<1 ri眦*
I2C2_HK
4
fctrt氏占i
4 ifiltWELIt?
减ft诂卓』
然后就是代码配置DMA To
void DMA_init(void)
{
DMA_InitTypeDef DMA_Initstructure;
// NVIC_InitTypeDef NVIC_Initstructure;
/*开启DMA时钟*/
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMAl,ENABLE);
// /* Enable the DMA1 Interrupt */
// 二 DMAl_Channel4_IRQn; //通道设置为
串口 1中断
// = 1; //中断响应优先级 0
// =1;
// NVIC_Ini tst rue = ENABLE; //打开中断
// NVIC_Init(&NVIC_Initstrueture);
/*DMA 配置*/
= (u32)(&USART1-〉DR);;
= (u32)receive_data;
= DMA_DIR_PeripheralSRC;
= 128;
= DMA_PeripheralInc_Disable;
=DMA_MemoryInc_Enable;
= DMA_Per