找回密码
 立即注册
查看: 983|回复: 2

硬件I2C,在定时器中断操作SSD1306时屏幕死机

[复制链接]

2

主题

4

回帖

50

积分

注册会员

积分
50
发表于 2023-5-15 22:09:27 | 显示全部楼层 |阅读模式
大佬们,我使用硬件I2C驱动ssd1306,在主程序里面对ssd1306的oled屏幕如何操作都是正常的,比如初始化、复位、显示等等,但是在定时器中断操作SSD1306时屏幕就会死机,无论是初始化还是复位或者是输出显示,因为电路中有蜂鸣器和编码器,所以我可以确定只是屏幕死机,单片机仍在运行,请问这种情况有可能是什么造成?
I2C的SDA和SCL我设置为开漏输出和内部上拉,除了ssd1306屏幕,没有其他I2C设备。
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:45
  • 最近打卡:2025-02-14 13:39:49
已绑定手机

19

主题

273

回帖

2152

积分

金牌会员

积分
2152
QQ
发表于 2023-5-16 08:43:15 | 显示全部楼层
本帖最后由 红心A 于 2023-5-16 08:49 编辑

可以用相应的范例测试下,
STC32G12K128-屠龙刀核心功能实验板的演示包程序中有 STC8H8K64U-开天斧核心功能实验板的演示包程序中有

1.png
1.png
QQ:1638975601
手机:19952583876(微信同号)
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-04-30 22:59:03

73

主题

5882

回帖

1万

积分

超级版主

积分
12073
发表于 2023-5-16 11:20:04 | 显示全部楼层
在中断中和主程序中都操作同一个外设,就存在竞争,请使用忙标志。
主程序中,使用外设时,先标志此外设忙,再使用外设,使用完毕清除忙标志。
中断中,先判断忙标志,如忙,则不能操作外设,退出中断。外设空闲,则可以操作。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 02:24 , Processed in 0.117143 second(s), 61 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表