最近毕业设计做的项目里用到Stemwin,Fatfs,Freertos等组件,除了STemwin,其他的我都是直接用CubeMX生成的,但是现在遇到很奇怪的问题。
如图1,如果不用STemwin,就是把下面的GUI有关的函数注释掉,f_mount()函数可以正常挂载SD卡,读写文件也正常。但是如图2,加入STemwin之后就无法挂载SD卡,f_mount函数卡30秒左右就返回“FR_DISK_ERR”,意思是“A hard error occurred in the low level disk I/O layer”,调试了1天了仍然没有解决。如图3,经过调试发现,f_mount()里卡在了osMessageQueueGet();这个函数里了..........,至今没有解决,我尝试在单独的任务函数里挂载SD卡,或者在main函数里挂载,仍然不行,加大函数栈也不行,没有解决问题,但是只要把STemwin注释掉,就可以正常挂载SD卡了。STemwin已经移植成功,但是STemwin和FatFs没有啥函数关联啊,里面没有用到Fatfs函数啊。。。。为什么会这样呢?有没有人遇到过这个问题?该怎么解决呢?