STM32+SDIO+DMA 4bits出现卡死问题

2019-07-14 15:21发布

我是使用的STM32F103VDT6芯片,TF卡使用的是sandisk class4 4G的。使用的是SDIO+DMA官方例程,单独测试没有发现问题,但是当我开启其他中断时(不管什么中断),比如我开启tiM3定时中断,中断频率为200Hz,中断中执行一个for循环来模拟中断处理,只要for循环的执行时间较长,就会出现TF卡的操作卡死问题,就是TF卡操作一直在等待DMA标志,并且for循环越长出现这种卡死的概率越大,当达到一定程度后TF卡完全不能操作。我大概估算了一下,差不多在中断执行时间达到总时间的20%左右就会明显有卡死现象,达到50%左右就基本上不能正常操作TF卡了。
由于我需要降低功耗,所以将主频降的比较低,4MHz,所以中断处理相对来说就显得执行时间较长,这样我才意识到这个问题,后来直接用官方例程实测,开通一个TIM3中断,执行for循环延时,当达到一定程度后,可以重现这个问题,所以我觉得应该是固件库或者是硬件的原因,不知道你们有没有发现这个问题,可以的话你们也可以这样测试一下,看能否重现这个问题,要是能解决的话,希望帮忙解决一下,要是这个问题得不到解决的话,我们只能放弃使用这个芯片了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
freesea123
1楼-- · 2019-07-16 11:00
问题解决了,就好了,这个MCU功能太复杂,很多东西忘记配置。
zhuqunwei
2楼-- · 2019-07-16 11:36
呵呵  很感谢你的关注。 问题解决了,心情真爽,呵呵   看来不是STM32的硬件有问题,还是代码库本身不够完善。
qi12345
3楼-- · 2019-07-16 17:12
楼上的问题是怎么解决的?读卡的错误搞定了?求真相……
zhuqunwei
4楼-- · 2019-07-16 22:14
使用DMA需要加硬件流控,希望大家少走弯路了,完全按照官方例程会出问题的。
www036
5楼-- · 2019-07-17 00:27
 精彩回答 2  元偷偷看……
地方絮叨
6楼-- · 2019-07-17 05:26
MARK。。。。。。。

一周热门 更多>