CubeMX软件使用从入门到精通STM32F429系列--4直接存储器访问 (DMA)串口发送

这里写图片描述
发送选择 DMA2 Stream 7通道,方向从存储器到外设。优先级为低。Mode为Normal,Data Width选择Byte。
其中mode设置可以选择Normal表单次传输,传输一次后终止传输,Circular表示循环传输,传输完成后又重新开始继续传输,不断循环永不停止。此处选择单次传输。
Increment Address表示地址指针递增。串口发送数据是将数据不断存进串口的发送数据寄存器(USARTx_TDR)。所以外接的地址是不递增。而内存储器存储的是要发送的数据,所以地址指针要递增才能将所以的数据发送出去。所以我们在Peripheral下面打钩,在Memory下面不打钩。
在while(1)中添加

HAL_USART_Transmit_DMA(&husart1, (uint8_t *)aTxMessage, sizeof(aTxMessage));

如果不开启串口中断,则程序只能发送一次数据,程序不能判断DMA传输是否完成,USART一直处于busy状态。


猜你喜欢

转载自blog.csdn.net/qq_16481211/article/details/80615684