势能跃迁 发表于 2025-5-21 03:33

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

我的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函数?

势能跃迁 发表于 2025-5-21 06:13

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

!(data/attachment/forum/202505/21/061011cca8cz3zcc93rrrm.png "bd22c57ed50b618ac06f927c0d665be8.png")

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

!(data/attachment/forum/202505/21/061243tdpqbphbbb17pgr7.png "f095e57dbc400e17efd1eeed436b9c70.png")

!(data/attachment/forum/202505/21/061235pl3ttxxh0lhq063w.png "image.png")
页: [1]
查看完整版本: 求助,关于GD32F330的Embeded Builder IDE的I2C驱动OLED屏幕问题