本帖最后由 lisingch 于 2021-2-5 18:50 编辑
编辑原因:补充工程文件。整理了一下,感觉还是有点乱。
本次实验使用AT32F407VGT7的I2C1驱动0.91' OLED显示器。
一、实验资源
1、AT-START-F407开发板;
2、keil v5.31.0.0;
3、BSP等相关资源;4、0.91'OLED(4Pin I2C);
二、相关知识学习
AT32F407VGT7具有3个I2C接口,支持两种速度模式,同时兼容SMBus2.0:
本次实验使用I2C主模式:
三、硬件连接
使用了I2C1端口,原打算将I2C1重映射至Arduino UNO上的I2C接口省着连线,无奈OLED模块上SDA与SCL排针位置颠倒。
四、程序实现
主要是利用“BSP”中相关程序进行修改,使用I2C主模式只有数据的写入。OLED模块只知道地址为0X78,套用了SSD1306的驱动程序,之前已驱动成功过。
五、实验结果
六、总结
通过OLED驱动,对AT32F407系列微控制器的I2C总线有了初步认知。对于从“BSP”中移植的代码还欠缺深入理解,“I2C_Master_Transmit()”函数的应用并不完全正确,还有待进一步学习。
七、附件
I2C_OLED_091.rar
(385.29 KB)
|