对于I2C设备使用模拟方式比较多,因其应用比较灵活、易于移植。本次实验使用HC32F460PETB上的I2C2模块硬件方式驱动板载的OLED显示器。
一、实验资源
1、HC32F460-EVB;
2、Keil V5.28;
3、ST-LINK调试器
二、资源简介
HC32F460PETB片上具有三个通道的I2C模块,支持SMBUS总线方式;工作速率支持100Kbps、400Kbps。
本次实验使用了OLED模块所在的I2C2接口。
三、代码实现
DEMO中没有相关例程,配套资料中也没有OLED的文档。在原理图中可以看到OLED的器件地址为“0X78”,手上之前用过一个相同地址的OLED屏,分辨率为96*16。通过在某宝上查看,发现有长得相似的OLED屏在售,最终实验发现板上配置的OLED屏应该是同款。
实验中I2C配置代码参考了DEMO,OLED驱动部分使用网上资料进行了局部修改,最终可以进行显示。但是DEMO的代码被改的有点乱,后面再调整吧。代码部分就不贴了,文后附有完整工程。
四、实验结果
五、实验总结
实验只是I2C写操作实验,后面还要尝试进行“读”器件操作。官方如果能够提供板上所配置资源的资料就方便了。
六、附件
附件是本次实验的完整工程,其中I2C操作部分参考了DEMO,但被改的有点乱还要进一步调整,也请朋友们多指教!
I2C_OLED_091.rar
(638.13 KB)
|