不用着急,这个本身是非常简单的问题,而且STM32和这个ST推出3轴数字陀螺仪L3G4200D都是非常好用的
从手册可以看出
CS-SPI enable
2C/SPI mode selection (1:I2C mode; 0: SPI enabled)
所以你再用IIC访问的时候,cs脚是必须拉高的,建议上拉。
使用STM32的IIC时,建议用模拟的方式(参考对EEPROM的 *** 作,这个芯片和EEPROM的 *** 作差别在于器件地址不同而已),这样代码可读性更好。
再给你个参考程序的连接>
业内一直传说
STM32
的硬件
I2C
有bug,会出现一些
死锁
的情况,所以大家一般都会避免使用硬件I2C,转而使用模拟I2C,毕竟引脚可以随便设置。
具体到底有没有坑,这个我还真的没测试过,一直用的都是模拟I2C。
stm32 把I2C的每一个状态都分的很细,在读之前要进行写 *** 作,而这一部分则被划分到写的过程中去了,手册上的接收传送序列图指的就是写 *** 作之后的那部分读 *** 作。
I2C读的完整过程为
(启动总线,送器件地址,送 *** 作地址){这部分是读之前的写 *** 作}
启动总线,发送器件地址(读),读取数据,停止总线。(这部分就是手册上的主接收传送序列图)
解释的不够清晰,希望对你有帮助。
碰巧你的CPU带I2C接口,当然可以直接接喽,但参考程序就需要改成用I2C设备的了。
官方代码一般是用专用的两个GPIO模拟I2C通讯,这需要占用CPU时间来轮询处理通讯,而I2C可单独干活,速度和效率比用GPIO模拟的高。用GPIO模拟的灵活性大,设备不一定必须挂载到I2C上,接口灵活,如果传感器是低速设备模拟的足够用了,也可以实现专口专用。
以上就是关于stm32读写l3g4200d用i2c总线 CS需不要接高电平 做毕设急需 望高人解答全部的内容,包括:stm32读写l3g4200d用i2c总线 CS需不要接高电平 做毕设急需 望高人解答、stm32硬件i2c缺陷解决方法、STM32F302RC 硬件I2C DMa有坑吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)