** 输 入 : 无 ** 输 出 : 无 ** 返 回 : 无
void WWDG_IRQHandler(void) {
/* Update WWDG counter */ WWDG_SetCounter(0x50);
/* Clear EWI flag */ WWDG_ClearFlag(); }
//************************************************ void USART1_SendData(uchar SendData) {
USART_SendData(USART1, SendData); Delayms(1); }
//初始化MPU6050,根据需要请参考pdf进行修改************************ void Init_MPU6050(void) {
Single_Write(MPU6050_Addr,PWR_MGMT_1, 0x00); //解除休眠状态 Single_Write(MPU6050_Addr,SMPLRT_DIV, 0x07); Single_Write(MPU6050_Addr,CONFIG, 0x06);
Single_Write(MPU6050_Addr,GYRO_CONFIG, 0x18); Single_Write(MPU6050_Addr,ACCEL_CONFIG, 0x01); }
//******读取MPU6050数据**************************************** void READ_MPU6050(void) {
BUF[0]=Single_Read(MPU6050_Addr,GYRO_XOUT_L); BUF[1]=Single_Read(MPU6050_Addr,GYRO_XOUT_H); T_X= (BUF[1]<<8)|BUF[0]; T_X/=16.4; //读取计算X轴数据
BUF[2]=Single_Read(MPU6050_Addr,GYRO_YOUT_L); BUF[3]=Single_Read(MPU6050_Addr,GYRO_YOUT_H); T_Y= (BUF[3]<<8)|BUF[2]; T_Y/=16.4; //读取计算Y轴数据 BUF[4]=Single_Read(MPU6050_Addr,GYRO_ZOUT_L); BUF[5]=Single_Read(MPU6050_Addr,GYRO_ZOUT_H); T_Z= (BUF[5]<<8)|BUF[4]; T_Z/=16.4; //读取计算Z轴数据
// BUF[6]=Single_Read(MPU6050_Addr,TEMP_OUT_L); // BUF[7]=Single_Read(MPU6050_Addr,TEMP_OUT_H); // T_T=(BUF[7]<<8)|BUF[6];
// T_T = 35+ ((double) (T_T + 13200)) / 280;// 读取计算出温度 }
//********串口发送数据*************************************** void Send_data(uchar axis) {uchar i;
USART1_SendData(axis); USART1_SendData(':');
for(i=0;i<4;i++)USART1_SendData(TX_DATA[i]); USART1_SendData(' '); USART1_SendData(' '); } /*
********************************************************************************
** 函数名称 : main(void) ** 函数功能 : 主函数 ** 输 入 : 无 ** 输 出 : 无 ** 返 回 : 无
********************************************************************************
*/
int main(void) {
RCC_Configuration(); //配置RCC GPIO_Configuration(); //配置GPIO USART1_Configuration(); //配置串口1 I2C_GPIO_Config(); //配置IIC使用端口 Delayms(10); //延时 Init_MPU6050(); //初始化MPU6050 while(1) {
READ_MPU6050(); //读取MPU6050数据 DATA_printf(TX_DATA,T_X);//转换X轴数据到数组 Send_data('X'); //发送X轴数
DATA_printf(TX_DATA,T_Y);//转换Y轴数据到数组 Send_data('Y'); //发送Y轴数
DATA_printf(TX_DATA,T_Z);//转换Z轴数据到数组 Send_data('Z'); //发送Z轴数
// DATA_printf(TX_DATA,T_T);//转换温度数据到数组 // Send_data('T'); //发送温度数据 USART1_SendData(0X0D); //换行 USART1_SendData(0X0A); //回车 Delayms(5); //延时 } }
/*************结