有关开启滴答定时器中断后影响到IIC通信

你好,我昨天在请教了如何开启滴答定时器中断后,通过这个中断写了一个延时函数,然后在延时函数里通过I2C通信隔1S读取一次温度传感器数据。原先读取数据已经调试OK了,但开启滴答定时器中断后,导致IIC通信出现异常,没想通滴答定时器中断是怎么影响到IIC通信的,该怎么解决?烦请指点一下。

1683868732113788.png

1683868732102413.png



你好,可直接用我们库里自带延时函数试下(具体使用方式可参考我们任意例程)有没有问题,同时可检查下你的systic配置的延时时间满不满足你设备的时序要求,延时的时间对不对等,还可通过分析仪看下能通信时和不能通信时的波形差距。后续若有问题,可邮箱(yrl@wch.cn)与我沟通


你好,杨工!开始调试IIC通信时,就用的库自带的延时函数当普通延时函数用的,是没问题的。开启了滴答定时器中断后,库自带的延时就用不了了。
其实我写这个延时函数的目的就是想在时间没到的时候,单片机可以先做其他的事情,而不是一直等在延时函数里面!


我也发现了这个问题,滴答定时器和IIC同时使用会有问题,楼主怎么解决的


您好,正常调用库延时函数应该不会有问题,若要用到SysTick做延时中断,可以考虑用定时器替代。后续沟通可通过邮箱(lzs@wch.cn)沟通,可和我具体描述一下你的需求。


只有登录才能回复,可以选择微信账号登录