[STM32F4] stm32f4,中断服务函数中调用i2c程序的问题

[复制链接]
1545|3
 楼主| qq8605578 发表于 2016-3-24 23:28 | 显示全部楼层 |阅读模式
用的定时器3的中断,在中断服务函数中调用i2c采集程序,然后printf发送给上位机。但是总是卡在i2c里面出不去。单独拿到主函数里面去采集的话是没有问题的,请教大神是啥原因!
单独在中断服务函数中printf也是没问题的。i2c的延时是用的滴答定时器。
airwill 发表于 2016-3-25 08:54 | 显示全部楼层
i2c的延时是用的滴答定时器。估计这就是关键所在. 由于滴答定时器的中断优先级并不高于定时器中断, 在定时中断里不退出来, 就没有滴答定时器中断服务的执行。
杨爱林林 发表于 2016-3-25 09:56 | 显示全部楼层
i2c延时最好还是用nop指令来实现
xmshao 发表于 2016-3-25 10:44 | 显示全部楼层
估计跟中断优先级安排有关,如果TIMER中断高,TICK中断级低,而i2C又要等TICK的计数变化,难免发生死等了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

74

帖子

0

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