上一节掌握了使用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_ */