实验名称:MPU9250九轴姿态测量显示及串口输出实验
实验目的:通过精英
STM32F103
开发板与MPU9250传感器连接,测量九轴姿态值,实时在LCD屏上显示并输出到串口显示
实验效果:
实验材料:
精英STM32F103开发板(含LCD屏)
MPU9250指南针磁场传感器模块
杜邦线
实验步骤:
1.连接传感器
将传感器的四个引脚VCC,GND,SCL,SDA分别连接至开发板的3.3V,GND,PE2,PE0引脚
2.开启读数
启动开发板
电源,此时程序将MPU9250九轴数据循环读出并在LCD中显示,同时输出至PC串口
3.串口读数
PC端打开串口软件,可看到9姿态数据一直在刷新显示
总结:精英STM32F103开发板资源丰富, 结构精巧, 功能强大, 是学习STM32的非常好的一款开发板. 通过对此开发板的试用, 在STM32开发上有非常大的进步. 也还有很多功能没有使用到, 还需要持续学习和研究.
实验过程视频:
[media]http://v.youku.com/v_show/id_XMzg5NzEzODAzMg==.html?x&sharefrom=android&sharekey=e90a3006b5ce17c87f44fcd69d9bbf3f5[/media]
主要代码:
- int main(void)
- {
- delay_init();
- GPIO_Configuration(); //配置GPIO
- USART1_Configuration(); //配置串口1
- I2C_GPIO_Config(); //配置IIC使用端口
- Delayms(10); //延时
- Init_MPU9250(); //初始化MPU9250
- LCD_Init();
- InitMainView();
- while(1)
- {
- READ_MPU9250_ACCEL(); //加速度
- DATA_printf(TX_DATA,T_X);//转换X轴数据到数组
- Send_data('A','X'); //发送X轴数
- Show_Str(120,110,WHITE,BLACK,TX_DATA,16,0);
- DATA_printf(TX_DATA,T_Y);//转换Y轴数据到数组
- Send_data('A','Y'); //发送Y轴数
- Show_Str(255,110,WHITE,BLACK,TX_DATA,16,0);
- DATA_printf(TX_DATA,T_Z);//转换Z轴数据到数组
- Send_data('A','Z'); //发送Z轴数
- Show_Str(390,110,WHITE,BLACK,TX_DATA,16,0);
-
- READ_MPU9250_GYRO(); //陀螺
- DATA_printf(TX_DATA,T_X);//转换X轴数据到数组
- Send_data('G','X'); //发送X轴数
- Show_Str(120,140,WHITE,BLACK,TX_DATA,16,0);
- DATA_printf(TX_DATA,T_Y);//转换Y轴数据到数组
- Send_data('G','Y'); //发送Y轴数
- Show_Str(255,140,WHITE,BLACK,TX_DATA,16,0);
- DATA_printf(TX_DATA,T_Z);//转换Z轴数据到数组
- Send_data('G','Z'); //发送Z轴数
- Show_Str(390,140,WHITE,BLACK,TX_DATA,16,0);
-
- READ_MPU9250_MAG(); //磁场
- DATA_printf(TX_DATA,T_X);//转换X轴数据到数组
- Send_data('M','X'); //发送X轴数
- Show_Str(120,170,WHITE,BLACK,TX_DATA,16,0);
- DATA_printf(TX_DATA,T_Y);//转换Y轴数据到数组
- Send_data('M','Y'); //发送Y轴数
- Show_Str(255,170,WHITE,BLACK,TX_DATA,16,0);
- DATA_printf(TX_DATA,T_Z);//转换Z轴数据到数组
- Send_data('M','Z'); //发送Z轴数
- Show_Str(390,170,WHITE,BLACK,TX_DATA,16,0);
-
- USART1_SendData(0X0D); //换行
- USART1_SendData(0X0A); //回车
- Delayms(10); //延时
- }
- }