打印

STM32 USB向计算机传递数据时会不会被TIM的中断打断

[复制链接]
1813|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zuowang|  楼主 | 2013-3-18 12:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zuowang 于 2013-3-20 09:41 编辑

以前问题没讲清楚,我用STM32的USB向计算机传递数据,这期间TIM计数到了会发生N次中断,USB的USB_LP_CAN1_RX0_IRQn中断的优先级是最高的,TIM的优先级较低,但是当TIM的某一次的中断会使USB向计算机传输的数据出错,这种问题怎么解决啊
沙发
JasonWangFAE| | 2013-3-18 13:04 | 只看该作者
Depend on your priotiry of USB and TIM setting .

使用特权

评论回复
板凳
cjhk| | 2013-3-18 21:05 | 只看该作者
会打断的  主要看你设置的优先级   这个需要考虑的  

使用特权

评论回复
地板
zuowang|  楼主 | 2013-3-20 09:29 | 只看该作者
  NVIC_InitStructure.NVIC_IRQChannel = USB_LP_CAN1_RX0_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;        //抢占优先级别0
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//响应优先级别0
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;                // 抢占优先级别1
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; //响应优先级别1
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
我只设置了两个中断,但是USB连接中断,是最高的,

使用特权

评论回复
5
zuowang|  楼主 | 2013-3-20 09:39 | 只看该作者
问题没讲清楚,我用STM32的USB向计算机传递数据,这期间TIM计数到了会发生N次中断,USB的USB_LP_CAN1_RX0_IRQn中断的优先级是最高的,TIM的优先级较低,但是当TIM的某一次的中断会使USB向计算机传输的数据出错,这种问题怎么解决啊

使用特权

评论回复
6
平常人| | 2013-3-20 10:30 | 只看该作者
“当TIM的某一次的中断会使USB向计算机传输的数据出错”,这种问题需要你检查自己的TIM中断处理程序,与USB中断无关。

使用特权

评论回复
7
zuowang|  楼主 | 2013-3-20 10:53 | 只看该作者
两者应该没有关系的,只是TIM中断需要的时间有点长大概20~30us,这样会影响吗

使用特权

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

本版积分规则

11

主题

63

帖子

0

粉丝