【FAQ求助】STM32F429 U盘+FreeRTOS 问题
问题1: FreeRTOS为操作系统,STM32F429为主机,对U盘进行读写。有时候会出现:U盘插入时,会出现系统停止运行,把U盘拔出来,系统又可以正常运行。此现象出现之后,只有系统复位之后才会消失,不如现象一直存在。(此现象出现的概率也较小),U盘中断级别为5,改U盘中断级别为8或者9之后,现象依旧会出现。我用的USB库是3.1.0的版本
问题2:因为之前不支持U盘热插拔,所以我有改USB中断里面的底层:
static void HCD_Port_IRQHandler(HCD_HandleTypeDef *hhcd)
{
... ....
if( hprt0 & USB_OTG_HPRT_PCDET==USB_OTG_HPRT_PCDET)
{ //USB_MASK_INTERRUPT(hhcd->Instance,USB_OTG_GINTSTS_DISCINT);
HAL_HCD_Connect_Callbcak(hhcd);
}
....
}
屏蔽掉了USB_MASK_INTERRUPT(hhcd->Instance,USB_OTG_GINTSTS_DISCINT)就支持热插拔了。。。
FAQ:https://www.stmcu.org.cn/faq/index/detail/id-70593
问题1有可能是U盘枚举失败后触发了suspended中断导致系统休眠了,找下USB库中有没有suspended方面的中断函数以及进入sleep休眠的代码。 creep 发表于 2015-8-12 11:21
问题1有可能是U盘枚举失败后触发了suspended中断导致系统休眠了,找下USB库中有没有suspended方面的中断函 ...
:lol大神就是牛 苏柚 发表于 2015-8-12 11:24
大神就是牛
小哥,别打击我,我是随便猜的啊,我啥也不懂! 你要仿真看看U盘插入时程序究竟停在哪里出不去。 creep 发表于 2015-8-12 11:21
问题1有可能是U盘枚举失败后触发了suspended中断导致系统休眠了,找下USB库中有没有suspended方面的中断函 ...
貌似可能有这种情况。。。我现在U盘的VBUS引脚是直接5V供电的,如果5V有干扰的话,是否就会引起这种情况? yanhaijian 发表于 2015-8-12 14:39
你要仿真看看U盘插入时程序究竟停在哪里出不去。
哎呀。。。遇到这种问题最纠结了。。。偶尔出现。。。
页:
[1]