完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
背景:我一个脱机的类似雕刻机的控制板,STM32F103+SDIO+FATFS,G代码(也就是文本文件,跟TXT一样)是提前放在内存卡中的,所以单片机只需去读数据(用FATFS里边的 f_gets()函数读),然后客户反映说,运行个几十次,可能就会出现一次坐标跑飞的情况…… 探索:因为是小概率事件,我只能大量的重复运行。发现出问题时,机器会突然朝着规划之外的一个坐标点跑去,然后又能反回来,继续正常运行。所以我判断,可能是从内存卡拿某一行坐标时,数据读错。 然后我把每一行数据,都连续读取两遍,判断,如果两行一模一样,我才认为是读取成功,想着这样总能过滤掉突然的数据拿错了吧。结果还不行…… 实时监测:我现在在上边基础上,判断连续两次读取一模一样后,通过串口把数据发送到电脑上监测,抓到了问题所在: 的确读回来的数据偶尔会出错,开始出错的一行,会错的比较严重,具体如图。然后紧接着底下大概十余行的坐标,都会跑偏一点点,再然后恢复正常。 三个错误数据记录,,第三次抓到的记录,好像错了一行之后,接下来的十余行坐标偏差,并不是读错,而是读取的位置跑飞了。但十余行之后恢复正常,难道出错一次导致文件读取指针跑飞了?然后十余行后,又正常了,难道跟内存卡的最小存储单元有关系?我不懂,瞎猜…… 希望遇到的朋友帮忙分析……多谢多谢…… 底下的数据,左侧是正常的代码。右侧是单片机读出来的代码。从红色箭头那一行出错,到绿色箭头那一行恢复正常。 |
|
相关推荐
5个回答
|
|
|
|
|
|
7762642422d 发表于 2018-12-12 13:14 这个问题是随机的,有时候我要连着跑四五十次(近两个小时),才能出现一次,并且每次出现问题的地方都不固定……所以就问问,有没有大佬遇到过类似的情况,大概给我指个方向,感激不尽…… |
|
|
|
换卡吧,用最普通的低速卡,4G的最好。我试过8G很多都这样子。
|
|
|
|
可否私訊發一份你程序的文件給我,我想看看是否有哪邊出問題?
|
|
|
|
SDIO 的时钟降低看看
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1107 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1055 浏览 2 评论
2159 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1253 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1678 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 10:42 , Processed in 0.824354 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号