msp432搭建平衡小车(二)

    上一节掌握了使用pwm驱动电机,接下来介绍如何使用msp432读取mpu6050数据

正文

   首先我们得知道mpu6050通信方式,由于mpu6050只能用i2c通信,所以学会使用msp432的i2c,msp432的i2c驱动可以调用driverlib库来使用msp432的硬件i2c,但是i2c库方法复杂使用起来会比较麻烦,

   这里我选择偷个懒,用软件方式模拟i2c驱动。

I2C

    建立一个my_i2c.h

/* * my_i2c.h * * Created on: 2021年7月29日 * Author: Administrator */ #ifndef MY_I2C_H_ #define MY_I2C_H_ #include <ti/devices/msp432p4xx/driverlib/driverlib.h> #include <delay.h> #define SDA_IN() GPIO_setAsInputPin(GPIO_PORT_P6,GPIO_PIN4) #define SDA_OUT() GPIO_setAsOutputPin(GPIO_PORT_P6,GPIO_PIN4) #define IIC_SCL_High() GPIO_setOutputHighOnPin(GPIO_PORT_P6,GPIO_PIN5) //SCL_High #define IIC_SCL_Low() GPIO_setOutputLowOnPin(GPIO_PORT_P6,GPIO_PIN5) //SCL_Low #define IIC_SDA_High() GPIO_setOutputHighOnPin(GPIO_PORT_P6,GPIO_PIN4) //SDA_High #define IIC_SDA_Low() GPIO_setOutputLowOnPin(GPIO_PORT_P6,GPIO_PIN4) //SDA_Low #define READ_SDA GPIO_getInputPinValue(GPIO_PORT_P6,GPIO_PIN4) //输入SDA void IIC_Init(void); //初始化IIC的IO口 void IIC_Start(void); //发送IIC开始信号 void IIC_Stop(void); //发送IIC停止信号 void IIC_Send_Byte(uint8_t txd); //IIC发送一个字节 uint8_t IIC_Read_Byte(unsigned char ack);//IIC读取一个字节 uint8_t IIC_Wait_Ack(void); //IIC等待ACK信号 void IIC_Ack(void); //IIC发送ACK信号 void IIC_NAck(void); //IIC不发送ACK信号 #endif /* MY_I2C_H_ */

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypywx.html