读写U盘数据过程中卡死在disk_read函数中

2019-07-20 09:35发布

CPU使用的是stm32f429,移植了freeRTOS系统,在读写U盘中数据过程中,发现不管是使用f_write向U盘写信息,还是使用f_read从U盘中读取信息,在第一次读/写时便会卡死在disk_read函数的

                                      do
                    {
                        status = USBH_MSC_Read10(&USB_OTG_Core, buff,sector,512 * count);
                        USBH_MSC_HandleBOTXfer(&USB_OTG_Core ,&USB_Host);

                        if (!HCD_IsDeviceConnected(&USB_OTG_Core))
                        {
                            break;
                        }
                    }
                    while (status == USBH_MSC_BUSY );
status 始终等于 USBH_MSC_BUSY,导致程序界面卡死,U盘拔出便可继续正常运行。这是什么原因涅?
我是否可以在该循环中加个计数,超过几次后便break涅?就是做出如下修改:                                 uint8_t exBussyNum;
                                if (HCD_IsDeviceConnected(&USB_OTG_Core))
                                {
                                        do
                                        {
                                                status = USBH_MSC_Read10(&USB_OTG_Core, buff,sector,512 * count);
                                                USBH_MSC_HandleBOTXfer(&USB_OTG_Core ,&USB_Host);


                                                if (!HCD_IsDeviceConnected(&USB_OTG_Core))
                                                {
                                                        break;
                                                }
                                                exBussyNum++;
                                                if(exBussyNum>10)//忙超过10次,则不再等待,否则界面一直卡死
                                                {
                                                        res = RES_ERROR;
                                                        break;
                                                }
                                        }
                                        while (status == USBH_MSC_BUSY );
                                }
有遇到此情况的吗?请大侠们帮帮忙~~


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-20 11:45
这种问题,不好说,仿真慢慢调试了
uscxiaomei
2楼-- · 2019-07-20 15:58
正点原子 发表于 2017-12-23 01:19
这种问题,不好说,仿真慢慢调试了

额,好吧,后来看文档好像是因为我读写文档部分代码的问题,我再找找的
emirate
3楼-- · 2019-07-20 19:52
 精彩回答 2  元偷偷看……
uscxiaomei
4楼-- · 2019-07-21 01:26
emirate 发表于 2018-2-2 17:43
我也遇到了同样的问题,楼主解决没有?

没有,你解决了吗?
emirate
5楼-- · 2019-07-21 04:22
不知道从何下手。
uscxiaomei
6楼-- · 2019-07-21 05:06
 精彩回答 2  元偷偷看……

一周热门 更多>