原理图查看I2C设备地址以及使用STM32和Zephyr Driver进行IC通讯时的注意事项

Posted 17岁boy想当攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原理图查看I2C设备地址以及使用STM32和Zephyr Driver进行IC通讯时的注意事项相关的知识,希望对你有一定的参考价值。

如下图,是一个WM8994CODER的从设备地址,它的地址是:00110100 转化为16进制就是0x34,但这不是它的实际地址,实际地址是右移一位:00011010,0x1A。

为什么需要右移一位呢?这个原因是因为I2C的通讯模式,在发送地址位时,只有前七位是有效的,最后一位是读写位,I2C的通讯时序是先发高位,在发低位,所以最低位就是读写位,也就是最后发的一个位,那么我们把最低位的0去掉不看,因为它是读写位,所以就是00011010,右移一位。

在Stm32的HAL外设库中,不需要右移一位,Stm32的HAL外设库会自动右移一位,所以在使用Stm32的HAL外设库做I2C通讯时给原始地址就可以了。

在Zephyr的I2C Driver中需要给实际地址,也就是I2C的准确地址不包含读写位的。

有的原理图给的是包含读写位的地址,有的给的是不包含读写位的,这个需要加以区分。

相关链接:详细介绍GPIO、I2C、SPI通讯原理以及物理层原理_17岁boy的博客-CSDN博客_sdi和sdo

以上是关于原理图查看I2C设备地址以及使用STM32和Zephyr Driver进行IC通讯时的注意事项的主要内容,如果未能解决你的问题,请参考以下文章

stm32f030f4p6 i2c地址是多少?

STM32 I2C 只传输一次

STM32学习笔记—I2C通信

STM32通信模拟I2C

STM32+cubemx0011 HAL库开发:I2C总线访问加速度传感器ADXL345

STM32L031F6 LL库硬件I2C使用,中断模式