打印
[研电赛技术支持]

求助,关于GD32F330的Embeded Builder IDE的I2C驱动OLED屏幕问题

[复制链接]
147|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的OLED型号是SSD1306,我一开始使用STM32的软件I2C移植过来,发现屏幕点不亮,于是打算手写一个硬件I2C,我引脚初始化如下图: 在生成的代码中,我在用户函数部分中添加了两段代码:

作用是使能i2c0和ack,我参考的是stm32的OLED函数

我新建了一个函数封装起来,我调用hal_i2c_master_transmit_poll(i2c_dev, tx_buffer, 2, 500);往OLED的引脚(PB6 PB7对应)地址(0xA0)写数据0x55,我已经重映射printf到串口1

就这么多,然后在main函数调用,用AIn1烧录




然而我复位了几次,串口输出全是 -5和-2,即超时和上锁

所以我想问问,GD32F330有没有SSD1306的OLED的hal库的驱动呢?或者我应该怎么配置i2c函数?

37033682cd67616949.png (39.96 KB )

37033682cd67616949.png

53411682cd82819a8a.png (59.76 KB )

53411682cd82819a8a.png

使用特权

评论回复
沙发
势能跃迁|  楼主 | 2025-5-21 06:13 | 只看该作者

我用STM32写了一个类似的程序,指定地址后,i2c状态位是可以通信的

bd22c57ed50b618ac06f927c0d665be8.png

而我用gd的逻辑写了一个,发现返回-5,即超时,是我哪里没有理解对嘛

f095e57dbc400e17efd1eeed436b9c70.png

image.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

粉丝