完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
STM32H743,采用轮询读写SD卡的方式,用的是freertos操作系统,长时间运行,间隔几秒读写一次TF卡会卡死在HAL_StatusTypeDef HAL_SD_WriteBlocks(SD_HandleTypeDef *hsd, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks, uint32_t timeout)这个函数里的
while(!__HAL_SD_GET_FLAG(hsd, SDMMC_FLAG_TXUNDERR | SDMMC_FLAG_DCRCFAIL | SDMMC_FLAG_DTIMEOUT | SDMMC_FLAG_DATAEND))这个循环了。 有碰到的伙伴吗? |
|
相关推荐
1个回答
|
|
可能的原因是读写TF卡的操作超时或引发了错误。导致卡死的原因可能有以下几点:
1. 长时间运行导致TF卡或SDMMC控制器出现异常。长时间读写TF卡可能会使卡片或控制器出现错误,导致卡死。 2. 轮询读写SD卡导致任务阻塞。如果读写操作超时或发生错误,轮询读写SD卡的任务可能会阻塞,导致卡死。 为了解决这个问题,可以尝试以下几个方案: 1. 确保TF卡和SDMMC控制器的连接稳定。检查TF卡插槽和连接线是否良好,如果可能的话,可以尝试更换TF卡。 2. 调整读写操作的超时参数。如果读写操作的超时参数设置得太短,可能会导致读写操作失败。可以尝试适当增加超时时间,以确保读写操作能够成功完成。 3. 使用DMA进行读写操作。使用DMA进行读写操作可以减少CPU的工作负载,降低出错的可能性。 4. 添加错误处理机制。在读写操作发生错误时,及时处理错误,例如重试操作、打印错误信息等。 5. 使用信号量或消息队列来同步读写操作。可以使用FreeRTOS的信号量或消息队列机制来同步读写操作,以避免任务阻塞。 总结起来,解决卡死问题需要综合考虑硬件连接、读写超时、任务阻塞等方面的因素,并逐个排查和优化相应的因素,以提高读写TF卡的可靠性和稳定性。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1763 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1617 浏览 1 评论
1059 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
723 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1932浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
725浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
564浏览 3评论
591浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
549浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 20:41 , Processed in 0.832884 second(s), Total 79, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号