你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【FAQ求助】STM32F429 U盘+FreeRTOS 问题

[复制链接]
苏柚 提问时间:2015-8-12 11:07 /
问题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




<
收藏 评论6 发布时间:2015-8-12 11:07

举报

6个回答
creep 回答时间:2015-8-12 11:21:47
问题1有可能是U盘枚举失败后触发了suspended中断导致系统休眠了,找下USB库中有没有suspended方面的中断函数以及进入sleep休眠的代码。
苏柚 回答时间:2015-8-12 11:24:49
creep 发表于 2015-8-12 11:21
问题1有可能是U盘枚举失败后触发了suspended中断导致系统休眠了,找下USB库中有没有suspended方面的中断函 ...

  大神就是牛
creep 回答时间:2015-8-12 11:58:47

小哥,别打击我,我是随便猜的啊,我啥也不懂!
yanhaijian 回答时间:2015-8-12 14:39:01
你要仿真看看U盘插入时程序究竟停在哪里出不去。
拥挤的寒冷 回答时间:2015-8-12 16:50:51
creep 发表于 2015-8-12 11:21
问题1有可能是U盘枚举失败后触发了suspended中断导致系统休眠了,找下USB库中有没有suspended方面的中断函 ...

貌似可能有这种情况。。。我现在U盘的VBUS引脚是直接5V供电的,如果5V有干扰的话,是否就会引起这种情况?
拥挤的寒冷 回答时间:2015-8-12 16:51:29
yanhaijian 发表于 2015-8-12 14:39
你要仿真看看U盘插入时程序究竟停在哪里出不去。

哎呀。。。遇到这种问题最纠结了。。。偶尔出现。。。
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版