串口通信里的
I2C 通信的读写操作封装得还不错,不用你去抠每个位的时序,直接看函数名就知道干嘛的。像i2c_start()
、i2c_write()
、i2c_stop()
这些,配合硬件一跑,快就能看到效果。
嗯,跟Arduino、MPC4725这些模块搭配的时候也挺方便,能快速打通 I2C 总线。有时候你不太确定是不是时序的问题,可以参考这篇《i2c 时序图详解及实验设计关键要素》,细节讲得挺清楚。
另外,如果你是用Simulink搞建模的,那也别错过《Simulink 中 ArduinoIO 包的 I2C 模块》,能帮你把通信逻辑一块拖进仿真里。
,i2c.c
就是一个适合入门的小项目,能跑、能改,还挺有意思。如果你正在捣鼓 I2C 相关的驱动,尤其像Arduino 对 MPC4725 的驱动开发这类,拿它练练手再合适不过了。
建议你一边跑代码,一边画时序图对照着看,会更清楚 I2C 的节奏。要是你对状态机控制感兴趣,也可以参考这个基于 Teensy 3.2 与 I2C OLED 的小项目,做点好玩的嵌入式小游戏。
哦对了,文件名是i2c.c
,记得和你的主控程序一起编译,不然调半天没反应可就尴尬了~