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

[复制链接]
2290|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连接中断,是最高的,
 楼主| zuowang 发表于 2013-3-20 09:39 | 显示全部楼层
问题没讲清楚,我用STM32的USB向计算机传递数据,这期间TIM计数到了会发生N次中断,USB的USB_LP_CAN1_RX0_IRQn中断的优先级是最高的,TIM的优先级较低,但是当TIM的某一次的中断会使USB向计算机传输的数据出错,这种问题怎么解决啊
平常人 发表于 2013-3-20 10:30 | 显示全部楼层
“当TIM的某一次的中断会使USB向计算机传输的数据出错”,这种问题需要你检查自己的TIM中断处理程序,与USB中断无关。
 楼主| zuowang 发表于 2013-3-20 10:53 | 显示全部楼层
两者应该没有关系的,只是TIM中断需要的时间有点长大概20~30us,这样会影响吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

63

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部