硬件I2C,在定时器中断操作SSD1306时屏幕死机
大佬们,我使用硬件I2C驱动ssd1306,在主程序里面对ssd1306的oled屏幕如何操作都是正常的,比如初始化、复位、显示等等,但是在定时器中断操作SSD1306时屏幕就会死机,无论是初始化还是复位或者是输出显示,因为电路中有蜂鸣器和编码器,所以我可以确定只是屏幕死机,单片机仍在运行,请问这种情况有可能是什么造成?I2C的SDA和SCL我设置为开漏输出和内部上拉,除了ssd1306屏幕,没有其他I2C设备。 本帖最后由 红心A 于 2023-5-16 08:49 编辑
可以用相应的范例测试下,
STC32G12K128-屠龙刀核心功能实验板的演示包程序中有; STC8H8K64U-开天斧核心功能实验板的演示包程序中有
在中断中和主程序中都操作同一个外设,就存在竞争,请使用忙标志。
主程序中,使用外设时,先标志此外设忙,再使用外设,使用完毕清除忙标志。
中断中,先判断忙标志,如忙,则不能操作外设,退出中断。外设空闲,则可以操作。
页:
[1]