今天花了好长时间看了硬件IIC的原理以及寄存器配置,同时还比较了模拟IIC。有以下收获:
1.硬件IIC比模拟IIC速度快,但是引脚固定,不如模拟IIC灵活
2.网上各类帖子以及正点原子的例程都说ST的硬件IIC接口复杂而且容易不稳定,模拟的IIC虽然程序写起来繁琐,但是灵活方便,可以根据自己的需要配置
3.区别一下IIC通信和EEPROM:
(1)IIC是一种通信总线,而EEPROM是拥有IIC接口的ROM
(2)以前觉得模拟IIC的程序好复杂,但是其实并不是,IIC的时序如下图1,就是特别简单时序图,而我以前所认为的复杂仅仅是把EEPROM使用IIC通信认作了IIC的通信格式,图2是EEPROM的通信机制。
4.还有一点就是ACK和NACK以前一直不能理解,其实无论发送还是读取,都是要ACK来应答的,单片机读数据的时候读一个字节结束若发送ACK(0)表示继续读,若发送NACK(1)则代表停止,所以读取N个字符的时候,前N-1个发送ACK,最后一个发送NACK,写数据的时候同理,写操作结束后,若单片机接收到ACK则表示写入成功,若接收到NACK则写入失败
5.自己的一点反思:思考+总结+自己动手不做伸手党,以后学习一定要踏实,一定不能图块。
IIC通信
最新推荐文章于 2022-07-27 11:01:04 发布