打印

USB程序运行到 _SetCNTR8就死掉了。

[复制链接]
2318|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
quyifei|  楼主 | 2013-5-31 22:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 quyifei 于 2013-5-31 22:47 编辑

调试一个USB程序,从st官方的库中修改来的。 运行到下面的代码后就死掉了,甚至调试都中断了,和MCU失去联系。后来我把 _SetCNTR(wInterrupt_Mask);去掉就可以运行下去了,不过肯定是不对的。 非常奇怪,向高手请教!

uint32_t USB_SIL_Init(void)
{
  /* USB interrupts initialization */
  /* clear pending interrupts */
  _SetISTR(0);
  wInterrupt_Mask = IMR_MSK;
  /* set interrupts mask */
  _SetCNTR(wInterrupt_Mask);
  return 0;
}

沙发
quyifei|  楼主 | 2013-5-31 22:57 | 只看该作者
问题找到了,原来是IMR_MSK的问题
原来的定义是
#define IMR_MSK (CNTR_CTRM  | CNTR_WKUPM | CNTR_SUSPM | CNTR_ERRM  | CNTR_SOFM \
                 | CNTR_ESOFM | CNTR_RESETM )
我把它改成
#define IMR_MSK (CNTR_CTRM  | CNTR_ERRM  | CNTR_SOFM \
                 | CNTR_ESOFM | CNTR_RESETM )
就好了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:最小STM32开发板-攸米板淘宝: yifei-stm.taobao.com 博客: blog.sina.com.cn/yifeistm

29

主题

146

帖子

1

粉丝