野火电子论坛

 找回密码
 注册

扫一扫,访问微社区

查看: 157|回复: 9

[F1-指南者] DMA M TO P模式问题

[复制链接]
发表于 2019-8-13 13:37:14 | 显示全部楼层 |阅读模式
小白问下:火哥在F103指南者教程中DMA 章节里,M TO P 模式下,程序是写的吧SRAM数据写进串口寄存器再从串口发出来,但是哪里写了串口发送呢?没看懂 求指导
回复

使用道具 举报

 楼主| 发表于 2019-8-13 13:37:53 | 显示全部楼层
int main(void)
{       
        uint16_t i=0;
        /* LED 端口初始化 */
        LED_GPIO_Config();
       
        USART_Config();
       
        for(i=0; i<SENDBUFF_SIZE; i++)
        {
                SendBuff[i] = 'P';
        }
       
  USARTx_DMA_Config();
       
        USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Tx, ENABLE);
       
        while (1)
        {
    LED1_TOGGLE
    Delay(0xFFFFF);               
        }
}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-13 13:45:47 | 显示全部楼层
来个大哥解决下小弟的疑问。。初学者
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-13 15:48:04 | 显示全部楼层

来个大哥解决下小弟的疑问。。初学者
回复 支持 反对

使用道具 举报

发表于 2019-8-13 17:23:48 | 显示全部楼层
就是 USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Tx, ENABLE);  使能了串口DMA控制相关,这这里是发送请求,然后外设间内部硬件就会自动处理数据的传递了
回复 支持 反对

使用道具 举报

发表于 2019-8-14 17:02:08 | 显示全部楼层
USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Tx, ENABLE);  DMA 搬运数据不需要占用CPU,数据从存储器到串口,串口的数据寄存器为目标地址,存储器为源地址,使能DMA后就开始了传输。
回复 支持 反对

使用道具 举报

发表于 2019-8-14 17:31:23 | 显示全部楼层
666
回复

使用道具 举报

 楼主| 发表于 前天 22:20 | 显示全部楼层
WishWish 发表于 2019-8-13 17:23
就是 USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Tx, ENABLE);  使能了串口DMA控制相关,这这里是发送请求, ...

哦哦 是这样 我找了半天没看到串口发送 原来是这个函数内部处理了
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 22:22 | 显示全部楼层
Mascreda 发表于 2019-8-14 17:02
USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Tx, ENABLE);  DMA 搬运数据不需要占用CPU,数据从存储器到串口 ...

谢谢谢谢,我明白了 ,因为设置的串口数据寄存器地址是目标地址 ,所以直接发送了
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 22:22 | 显示全部楼层
WishWish 发表于 2019-8-13 17:23
就是 USART_DMACmd(DEBUG_USARTx, USART_DMAReq_Tx, ENABLE);  使能了串口DMA控制相关,这这里是发送请求, ...

谢谢前辈 ,我弄懂了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

野火电子公众号

手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号-2 大学生ARM嵌入式2群

GMT+8, 2019-8-23 17:32 , Processed in 0.162011 second(s), 27 queries , Gzip On.

野火电子论坛

© 2014-2016 www.firebbs.cn

快速回复 返回顶部 返回列表