OpenEdv-开源电子网

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

STM32H743怕坑指南

[复制链接]

5

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2018-10-21
在线时间
21 小时
发表于 2019-5-12 13:49:47 | 显示全部楼层 |阅读模式
楼主大学毕业以后,一直是从事PCB设计。在此期间自学了STM32,当时用的是F407的芯片。
到新公司以后,接触到的第一个项目,用到的就是H743的芯片。
虽说一通百通,但是在实际调试的过程中,还是出现了许多奇葩的问题,在网上找了好多资源,最终才得以解决问题。
现在把遇到的这些问题总结出来,跟大家分享


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2018-10-21
在线时间
21 小时
 楼主| 发表于 2019-5-12 14:05:00 | 显示全部楼层
问题一:DMA串口可以发送字符串但是不能发送字符数组(一上来就是这么奇葩的问题)
大家可以自己用cubemx生成一个工程(注意这里是自己生成一个工程,而不是在正点原子提供的工程模板里面移植HAL库文件),然后试着用串口+DMA的方式发送一个字符串试一下,结果是发不出去的。
产生问题的原因:1:H743采用了新的存储架构,也就是所位的域。
                           2:串口+DMA只能默认访问D2域。字符串默认存储在D2域,而字符数组默认存储在D1域里面。
这样一来,串口+DMA的方式就只能发送字符串,而不能发送字符数组。
解决方法:1:开启DMA数据缓冲,并且强制透写
                 2:选择RAM2为默认RAM
在这两个条件都具备之后,串口+DMA的方式才能正常的发送字符数组
下面上传一张在解决这个问题的时候,给我很大灵感的图片。C:\Users\Administrator\Desktop\P1.png
P1.png
回复 支持 反对

使用道具 举报

33

主题

984

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8005
金钱
8005
注册时间
2014-8-13
在线时间
1593 小时
发表于 2019-5-12 14:17:41 | 显示全部楼层
前排插楼。LZ给力。
回复 支持 反对

使用道具 举报

0

主题

168

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
214
金钱
214
注册时间
2019-4-28
在线时间
5 小时
发表于 2019-5-14 13:20:19 | 显示全部楼层
不错的   
回复 支持 反对

使用道具 举报

0

主题

286

帖子

0

精华

高级会员

Rank: 4

积分
950
金钱
950
注册时间
2018-4-21
在线时间
264 小时
发表于 2019-5-14 16:01:58 来自手机 | 显示全部楼层
前排留名
回复 支持 反对

使用道具 举报

5

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2018-10-21
在线时间
21 小时
 楼主| 发表于 2019-5-15 08:54:21 | 显示全部楼层
问题二:串口+DMA只能发送一次(还是这么奇葩)
问题背景:1.在正式用到工程上之前,要先进行测试。所以楼主用串口+DMA的方式把数据输出到串口;
                 2.为了保证程序完整性(因为已经加入了UCOS II),要求不能开串口中断和DMA中断;
问题描述:串口+DMA只能传输一次(明明是写在循环里面的),第二次传输再串口上收不到数据,但是也不报错。
产生问题的原因:串口+DMA在传输完成后,要及时的关掉DMA。如果没有关掉DMA,它会一直处于busy的状态,导致第二次传输无法进行。
吐槽:本来应该在传输完成中断里面关掉DMA,使DMA进入准备状态的。但是由于不能用中断,所以也就不能再合适的位置关闭中断了。导致第二次传输无法进行。
解决方法:出于无奈,楼主只能在每次开始DMA之前,关闭DMA。不得不说这样虽然可以完成循环发送,但是并不是一个合理的解决方法。
回复 支持 反对

使用道具 举报

4

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2018-8-18
在线时间
14 小时
发表于 2020-5-19 14:34:38 | 显示全部楼层
才说了两个问题啊。 还有没有。继续讲讲。     cdfd.top
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2020-5-21
在线时间
0 小时
发表于 2020-5-21 11:09:03 | 显示全部楼层
我研究的串口就有问题了
回复 支持 反对

使用道具 举报

82

主题

547

帖子

0

精华

高级会员

Rank: 4

积分
761
金钱
761
注册时间
2014-9-30
在线时间
132 小时
发表于 2020-5-21 16:41:00 | 显示全部楼层
夕阳醉了iii 发表于 2020-5-21 11:09
我研究的串口就有问题了

楼主 第一个 奇葩问题,是 芯片自身的 限制性 问题。

楼主 第二个 奇葩问题,其实 就不算什么 问题 咯 。。
回复 支持 反对

使用道具 举报

37

主题

477

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
2285
金钱
2285
注册时间
2017-8-24
在线时间
375 小时
发表于 2020-5-21 18:07:47 | 显示全部楼层
ADC也是,读另外一个ADC的时候要先关了这一个,不然读的数就是0或者很奇怪,关了就行了
天然懒,天然呆
能吃会睡,未来可期
回复 支持 反对

使用道具 举报

5

主题

13

帖子

0

精华

高级会员

Rank: 4

积分
683
金钱
683
注册时间
2018-10-30
在线时间
120 小时
发表于 2020-7-30 11:16:19 | 显示全部楼层
学习下
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-30 19:20

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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