本文以MMA8452为例,介绍如何使用STM32通过IIC驱动:
一、什么是IIC
IIC 即Inter-Integrated Circuit(集成电路总线),这种总线类型是由飞利浦半导体公司在八十年代初设计出来的一种简单、双向、二线制、同步串行总线,主要是用来连接整体电路,IIC是一种多向控制总线,也就是说多个芯片可以连接到同一总线结构下,同时每个芯片都可以作为实时数据传输的控制源。这种方式简化了信号传输总线接口。
简单理解就是一个控制信号SCL,一个传输信号SDA,主机通过总线,根据从机地址(slave address)写入\读取数据
二、IIC使用方式&注意事项
IIC要实现数据传输,只要记住几个要点就可以:开始条件,结束条件,握手,传输数据格式
*注意:无论在哪个数据传送时,SCL控制信号一定要是有效的,即SCL = 1;
开始条件:在SCL = 1时,SDA电平由1变为0。
结束条件:在SCL = 1时,SDA电平由0变为1。
握手(ASK):主机发送时,从机接收到8bit数据后,需要告诉主机已经收完,给出响应ASK。此时SDA从输出模式转换为输入模式,将响应电平输入到主机,主机判断是否有ASK = 1/0,然后再继续后面动作,否则数据容易错乱。
主机接收数据时,主机接收到8bit数据后,需要告诉从机已经收到,给出响应,并结束数据传送。
数据传输格式:每一个字节必须保证是8位数据长度,数据传送时,先传送最高位(MSB),每个字节后面必须有握手位(ASK),即一帧共有9位。
三、实例驱动
驱动思路:1、找到正确被驱动IC地址 2、了解驱动寄存器 3、掌握时序
本次使用工作方式为:单次写入,单次读取