硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1103|回复: 6
收起左侧

[FatFs] 遇到一个问题,通过FatFS+中断来存SD卡数据,在中断里opendir只能第一次执行,第二次就卡在那了?

[复制链接]

2

主题

8

回帖

14

积分

新手上路

积分
14
发表于 2024-12-24 21:07:08 | 显示全部楼层 |阅读模式

我的外部中断是这样的,用按键来触发外部中断,然后每次按键一次就会触发定时器中断来ADC采样率,采集的数据存入SD卡里,但是外部中断触发只能在第一次触发之后第二次就会卡在opendir这段代码了,这是为什么呢

回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2024-12-24 21:45:41 | 显示全部楼层
代码截到的是这样的,第二次进外部中断就卡在opendir那里
Snipaste_2024-12-24_21-44-37.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-12-25 07:37:18 | 显示全部楼层
海鸟跟魚 发表于 2024-12-24 21:45
代码截到的是这样的,第二次进外部中断就卡在opendir那里

修改下实现,中断里面仅设置个标志,全部在中断外部测试下正常不。
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2024-12-25 09:28:52 | 显示全部楼层
eric2013 发表于 2024-12-25 07:37
修改下实现,中断里面仅设置个标志,全部在中断外部测试下正常不。

之前有用过不用中断,检测按键GPIO口电平变化实现按键控制储存SD卡数据,在while循环里写的,创建文件夹、文件和存数据都可以用,现在改成按键进EXTI加一个TIM中断控制ADC采样率,上面的代码放到中断里就不行了
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2024-12-25 09:53:26 | 显示全部楼层
这个是TIM中断控制ADC采样率的部分
Snipaste_2024-12-25_09-27-57.png
回复

使用道具 举报

6

主题

268

回帖

286

积分

高级会员

积分
286
发表于 2024-12-25 10:09:32 | 显示全部楼层
中断里是不能执行太多内容的,这是常识啊。
你的SD卡的库有可能也要用中断调用,这样会有问题的,版主已经回复你了,弄个标志,在外部循环里再调用读写
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
 楼主| 发表于 2024-12-25 10:24:38 | 显示全部楼层
fxyc87 发表于 2024-12-25 10:09
中断里是不能执行太多内容的,这是常识啊。
你的SD卡的库有可能也要用中断调用,这样会有问题的,版主已经 ...

好的,刚学中断不久有些不太了解,感谢解答
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 04:40 , Processed in 0.290391 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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