OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4591|回复: 10

请教各位大佬,STM32H7的MDMA怎么配置才能向串口发送数据?

[复制链接]

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-1-9
在线时间
20 小时
发表于 2019-1-9 20:50:37 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2019-1-10 02:39:15 | 显示全部楼层
回复

使用道具 举报

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-1-9
在线时间
20 小时
 楼主| 发表于 2019-1-10 08:53:03 | 显示全部楼层

自己写了代码,编译没有问题,但是调试时串口收不到数据,不知道咋回事,怀疑自己配错了,手册中MDMA的讲解不是很清楚,所以想请教一下
回复

使用道具 举报

5

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
159
金钱
159
注册时间
2018-1-29
在线时间
34 小时
发表于 2019-1-10 09:08:24 | 显示全部楼层
把代码贴出来,这么说鬼知道你是什么问题哦
回复

使用道具 举报

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-1-9
在线时间
20 小时
 楼主| 发表于 2019-1-10 09:14:53 | 显示全部楼层
张某人 发表于 2019-1-10 09:08
把代码贴出来,这么说鬼知道你是什么问题哦

        RCC->AHB3ENR|=1<<0;                //MDMA时钟使能
        while(MDMA_Channelx->CCR&0X01);
        MDMA_Channelx->CIFCR |= 0X1F;        //清除该通道所有中断标志
        MDMA_Channelx->CTCR |= 1<<28;        //每次请求触发块传输
        MDMA_Channelx->CTCR |= 1<<8; //源增量为半字16位,
        MDMA_Channelx->CTCR |= 0<<6;        //目标数据大小为字节8位
        MDMA_Channelx->CTCR        |= 1<<4;        //源数据大小为半字16位
        MDMA_Channelx->CTCR        |= 2<<0;        //源地址递增模式
        MDMA_Channelx->CTBR        |= 0<<16;        //源总线选择为AXI总线
        MDMA_Channelx->CTBR        |= 1<<17;        //目的总线选择AHB、TCM
        MDMA_Channelx->CDAR =ndar;                //DMA目的地址
       
        MDMA_Channelx->CCR        |= 1<<2;        //使能通道传输完成中断
        MDMA_Channelx->CCR         |= 1<<6;        //优先级设置为低
        MDMA_Channelx->CCR         |= 1<<16;
        MDMA_Channelx->CSAR=m0ar;                //存储器地址
        MDMA_Channelx->CBNDTR |=ndtr<<0;                //DMA 传输字节数
        MDMA_Channelx->CCR |= 1<<0;        //使能MDMA
       
回复

使用道具 举报

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-1-9
在线时间
20 小时
 楼主| 发表于 2019-1-10 09:16:47 | 显示全部楼层
papabbb 发表于 2019-1-10 09:14
RCC->AHB3ENR|=1CIFCR |= 0X1F;        //清除该通道所有中断标志
        MDMA_Channelx->CTCR |= 1

帮我看一下,谢谢
回复

使用道具 举报

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-1-9
在线时间
20 小时
 楼主| 发表于 2019-1-10 09:18:04 | 显示全部楼层
张某人 发表于 2019-1-10 09:08
把代码贴出来,这么说鬼知道你是什么问题哦

源地址是用户SRAM,目的地址是串口1发送
回复

使用道具 举报

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-1-9
在线时间
20 小时
 楼主| 发表于 2019-1-10 09:31:16 | 显示全部楼层

      RCC->AHB3ENR|=1<<0;                //MDMA时钟使能
        while(MDMA_Channelx->CCR&0X01);
        MDMA_Channelx->CIFCR |= 0X1F;        //清除该通道所有中断标志
        MDMA_Channelx->CTCR |= 1<<28;        //每次请求触发块传输
        MDMA_Channelx->CTCR |= 1<<8; //源增量为半字16位,
        MDMA_Channelx->CTCR |= 0<<6;        //目标数据大小为字节8位
        MDMA_Channelx->CTCR        |= 1<<4;        //源数据大小为半字16位
        MDMA_Channelx->CTCR        |= 2<<0;        //源地址递增模式
        MDMA_Channelx->CTBR        |= 0<<16;        //源总线选择为AXI总线
        MDMA_Channelx->CTBR        |= 1<<17;        //目的总线选择AHB、TCM
        MDMA_Channelx->CDAR =ndar;                //DMA目的地址
        
        MDMA_Channelx->CCR        |= 1<<2;        //使能通道传输完成中断
        MDMA_Channelx->CCR         |= 1<<6;        //优先级设置为低
        MDMA_Channelx->CCR         |= 1<<16;
        MDMA_Channelx->CSAR=m0ar;                //存储器地址
        MDMA_Channelx->CBNDTR |=ndtr<<0;                //DMA 传输字节数
        MDMA_Channelx->CCR |= 1<<0;        //使能MDMA
原子哥,帮我看看,谢谢
回复

使用道具 举报

0

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
286
金钱
286
注册时间
2018-12-31
在线时间
12 小时
发表于 2019-1-10 10:09:41 | 显示全部楼层
我来看看你们怎么写的啊!
回复

使用道具 举报

4

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-1-9
在线时间
20 小时
 楼主| 发表于 2019-1-10 10:54:14 | 显示全部楼层
二九结狐六体 发表于 2019-1-10 10:09
我来看看你们怎么写的啊!

这玩意是个新东西,玩不转啊
回复

使用道具 举报

35

主题

121

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
331
金钱
331
注册时间
2016-10-12
在线时间
53 小时
发表于 2019-2-19 06:16:10 | 显示全部楼层
串口不用MDMA来连接,而是用DMA1或DMA2来连接。在H7里,四个DMA,分别与不同的硬件相连接。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 18:09

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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