第一范文网 - 专业文章范例文档资料分享平台

STM32F4半生不熟的DMA USART发送数据 函数操作=

来源:用户分享 时间:2025/7/22 0:50:27 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

STM32F4半生不熟的DMA/USART发送数据【库函数操作】

半生:是因为发出了数据

不熟:是因为不太理解。只是用了简单的几个东西 配置DMA操作步骤如下: 1、打开时钟。

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2,ENABLE); 2、配置DMA数据结构

有几点明确的:通过USART1发送数据,ST的F4参考手册里边可以找打USART1说对应的通道:DMA2-Channel4-Stream7。 数据传递方向是Memory2Peripheral。即内存到外设。

不使用FIFO,要传输的数据位于数组usart_tx_buf[20]中,USART1发送数据寄存器的地址是:USART1_BASE+0x04,内存和外设的字宽都是1Byte. 单次传输,传输一次完毕需要手动重启。外设地址固定,内存地址自增。 于是:

DMA_DeInit(DMA2_Stream7);

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2,ENABLE);

DMA_StructInit(&DMA_InitStructure);

DMA_InitStructure.DMA_Priority = DMA_Priority_Medium; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; DMA_InitStructure.DMA_Channel = DMA_Channel_4;

DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable;

DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)usart_tx_buf; DMA_InitStructure.DMA_PeripheralBaseAddr = USART1_BASE+0x04; DMA_InitStructure.DMA_BufferSize = BufSize;

DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_Byte; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; 之后,使用DMA_Init初始化DMA。最后用DMA_Cmd使能DMA。

以后每次发送数据都要用DMA_Cmd使能一次DMA。我没找到别的办法。。。。。 住函数中调用:

while(1) {

while(RESET == USART_GetFlagStatus(USART1,USART_FLAG_TXE)); USART_SendData(USART1,'b');

while(RESET == USART_GetFlagStatus(USART1,USART_FLAG_TXE)); USART_SendData(USART1,'a'); delay_ms(1000);

printf(\

if(SET == DMA_GetFlagStatus(DMA2_Stream7,DMA_FLAG_TCIF7)) {

DMA_ClearFlag(DMA2_Stream7,DMA_FLAG_TCIF7); //DMA_Cmd(DMA2_Stream7,DISABLE); for(i = 0;i<20;i++)

usart_tx_buf[i] = i+51;

DMA_Cmd(DMA2_Stream7,ENABLE); } }

STM32F4半生不熟的DMA USART发送数据 函数操作=.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9ykin2o8px2xn8u9vo4l_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top