lilu 发表于 2016-9-25 09:57:54

单总线时序关闭中断带来了困扰

各位大家好:
      stm32f051,主频48M.硬件资源确定,无法进行修改.
      stm32前后台跑,后台一直在扫描12个单总线设备在线情况,通过单总线的复位和应答时序判定设备在线与否.当然,在时序里就作了关/开总中断处理.问题(两个问题都实际测试了)就来了,
      首先,频繁的关/开总中断,影响前台串口中断响应!测试发现,串口收到数据有时候不完整,导致校验通不过;有时候串口没有响应(可能串口中断处于关闭状态);
    其次,如果时序不作关/开总中断,其他的中断就会打坏复位和应答时序,影响设备在线与否情况!
      按照道理来讲,执行单总线的时序,需要关闭中断,防止时序受干扰.但是,后台就是一直在扫描单总线设备在线和解析串口数据.如果串口没有数据的话,后台就是扫描设备在线.这就会导致串口中断一直处于关闭状态.于是,就降低设备的扫描周期,设定为100-200ms,偶尔出现设备无响应和数据接受不完整.此时,设备在线情况已经出现延时了!!
      如果有此方面处理经验的人士,讨论下!现在就想,设备在线与否快速体现,串口接受不要受影响!谢谢!

yklstudent-1794 发表于 2016-9-25 14:03:57

串口采用DMA方式

stary666 发表于 2016-9-25 15:19:34

:loveliness::loveliness:

lilu 发表于 2016-9-25 19:06:05

yklstudent-1794 发表于 2016-9-25 14:03
串口采用DMA方式

就算是DMA,还是要通过串口中断啊!

yklstudent-1794 发表于 2016-9-26 16:50:19

lilu 发表于 2016-9-25 19:06
就算是DMA,还是要通过串口中断啊!

串口中断的频率明显会少很多
页: [1]
查看完整版本: 单总线时序关闭中断带来了困扰