软件I2C(IIC_Software)
该驱动库位于
MPU6050/IIC_Software 目录下,在小车中仅用于做MPU6050的通信支持
方法
IIC_MPU6050_Init()
MPU6050的IIC引脚初始化
| 返回值 | 类型 |
|---|---|
| 无 | void |
IIC_Start()
模拟IIC起始信号
| 返回值 | 类型 |
|---|---|
| 1 | int |
IIC_Stop()
模拟IIC结束信号
| 返回值 | 类型 |
|---|---|
| 无 | void |
IIC_Wait_Ack()
IIC等待应答信号
| 返回值 | 类型 |
|---|---|
| 0:没有收到应答;1:收到应答 | int |
IIC_Ack()
IIC应答
| 返回值 | 类型 |
|---|---|
| 无 | void |
IIC_NAck()
IIC不应答
| 返回值 | 类型 |
|---|---|
| 无 | void |
IIC_Send_Byte(u8 txd)
IIC发送一个字节
| 参数 | 类型 | 注释 |
|---|---|---|
| txd | u8 | 发送的字节数据 |
| 返回值 | 类型 |
|---|---|
| 无 | void |
i2cWrite(uint8_t addr, uint8_t reg, uint8_t len, uint8_t *data)
IIC写数据到寄存器
| 参数 | 类型 | 注释 |
|---|---|---|
| addr | uint8_t | 设备地址 |
| reg | uint8_t | 寄存器地址 |
| len | uint8_t | 字节数 |
| data | uint8_t* | 数据 |
| 返回值 | 类型 |
|---|---|
| 0:成功写入;1:没有成功写入 | int |
i2cRead(uint8_t addr, uint8_t reg, uint8_t len, uint8_t *buf)
IIC读寄存器的数据
| 参数 | 类型 | 注释 |
|---|---|---|
| addr | uint8_t | 设备地址 |
| reg | uint8_t | 寄存器地址 |
| len | uint8_t | 字节数 |
| buf | uint8_t* | 读出数据缓存 |
| 返回值 | 类型 |
|---|---|
| 0:成功读出;1:没有成功读出 | int |
IIC_Read_Byte(unsigned char ack)
IIC读取一个字节
| 参数 | 类型 | 注释 |
|---|---|---|
| ack | unsigned char | 是否发送应答信号;1:发送;0:不发送 |
| 返回值 | 类型 |
|---|---|
| receive:读取的数据 | u8 |
I2C_ReadOneByte(unsigned char I2C_Addr, unsigned char addr)
读取指定设备指定寄存器的一个值
| 参数 | 类型 | 注释 |
|---|---|---|
| I2C_Addr | unsigned char | 设备IIC地址 |
| addr | unsigned char | 寄存器地址 |
| 返回值 | 类型 |
|---|---|
| res:读取的数据 | unsigned char |
IICreadBytes(u8 dev, u8 reg, u8 length, u8 *data)
IIC连续读数据
| 参数 | 类型 | 注释 |
|---|---|---|
| dev | u8 | 目标设备IIC地址 |
| reg | u8 | 寄存器地址 |
| length | u8 | 字节数 |
| data | u8* | 读出的数据将要存放的指针 |
| 返回值 | 类型 |
|---|---|
| count:读出来的字节数量-1 | u8 |
IICwriteBytes(u8 dev, u8 reg, u8 length, u8* data)
将多个字节写入指定设备指定寄存器
| 参数 | 类型 | 注释 |
|---|---|---|
| dev | u8 | 目标设备地址 |
| reg | u8 | 寄存器地址 |
| length | u8 | 要写的字节数 |
| data | u8* | 将要写的数据的首地址 |
| 返回值 | 类型 |
|---|---|
| 1:返回是否成功 | u8 |
IICreadByte(u8 dev, u8 reg, u8 *data)
读取指定设备指定寄存器的一个值
| 参数 | 类型 | 注释 |
|---|---|---|
| dev | u8 | 目标设备地址 |
| reg | u8 | 寄存器地址 |
| data | u8* | 读出的数据将要存放的指针 |
| 返回值 | 类型 |
|---|---|
| 1:返回是否成功 | u8 |
IICwriteByte(unsigned char dev, unsigned char reg, unsigned char data)
写入指定设备指定寄存器一个字节
| 参数 | 类型 | 注释 |
|---|---|---|
| dev | unsigned char | 目标设备地址 |
| reg | unsigned char | 寄存器地址 |
| data | unsigned char | 发送的字节数据 |
| 返回值 | 类型 |
|---|---|
| 1:返回是否成功 | u8 |
IICwriteBits(u8 dev, u8 reg, u8 bitStart, u8 length, u8 data)
读、修改、写指定设备指定寄存器一个字节中的多个位
| 参数 | 类型 | 注释 |
|---|---|---|
| dev | u8 | 目标设备地址 |
| reg | u8 | 寄存器地址 |
| bitStart | u8 | 目标字节的起始位 |
| length | u8 | 目标字节的位数 |
| data | u8 | 存放改变目标字节位的值 |
| 返回值 | 类型 |
|---|---|
| 1:成功;0:失败 | u8 |
IICwriteBit(u8 dev, u8 reg, u8 bitNum, u8 data)
读、修改、写指定设备指定寄存器一个字节中的1个位
| 参数 | 类型 | 注释 |
|---|---|---|
| dev | u8 | 目标设备地址 |
| reg | u8 | 寄存器地址 |
| bitNum | u8 | 要修改目标字节的bitNum位 |
| data | u8 | 为0时,目标位将被清,否则将被置位 |
| 返回值 | 类型 |
|---|---|
| 1:成功;0:失败 | u8 |