本帖最后由 face-v 于 2025-4-8 23:37 編輯
問題如題,是mpu6050打開串口接收數據無顯示
下載_compressed.png (88.83 KB, 下載次數: 0)
下載附件
2025-4-8 23:20 上傳
跪求大佬幫忙,整了一天了快
改過I2C地址,弄過boot0跳線帽,改過程序,換過串口助手,還是不行
---------------------------------------------------------------------------------------
問題描述
代碼是看的一個up主的(stm32使用IIC讀取MPU6050的數據_嗶哩嗶哩_bilibili) (CubeMX設置也如視頻一樣,SYS、RCC、I2C1、USART1)如下(原本I2C地址為0xD1,后來我改成了0x68)
- void MPU6050_INIT ()
- {
- HAL_Delay(100);
- uint8_t SendAddress = 0x68;
- uint8_t SendData = 0x00; //解除休眠
- HAL_I2C_Mem_Write (&hi2c1,0x68, SendAddress, 1, &SendData, 1, 0xff) ;
- SendAddress = 0x19;
- SendData = 0x07; //采樣率分頻器
- HAL_I2C_Mem_Write (&hi2c1,0x68, SendAddress, 1, &SendData, 1,0xff);
- SendAddress = 0x1A; //低通濾波器
- SendData = 0x06;
- HAL_I2C_Mem_Write (&hi2c1, 0x68,SendAddress, 1, &SendData, 1, 0xff);
- SendAddress = 0x1B; //陀螺儀
- SendData = 0x08;//±500°/s
- HAL_I2C_Mem_Write (&hi2c1,0x68, SendAddress,1, &SendData, 1,0xff);
- SendAddress = 0x1C; //加速度計
- SendData = 0x00;//±2g
- HAL_I2C_Mem_Write(&hi2c1, 0x68, SendAddress, 1, &SendData, 1, 0xff);
- }
- int main(void)
- {
- ...
- MX_GPIO_Init();
- MX_I2C1_Init();
- HAL_Delay(200);
- MX_USART1_UART_Init();
- /* USER CODE BEGIN 2 */
- uint8_t MPU_DATA[14]={0};
- uint8_t StartAddress=0x3B;
- double ACCEL_XOUT = 0.0,ACCEL_YOUT=0.0,ACCEL_ZOUT=0.0;
- double GYR0_XOUT = 0.0,GYR0_YOUT = 0.0,GYR0_ZOUT = 0.0;
- MPU6050_INIT();
- /* USER CODE END 2 */
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- /* USER CODE END WHILE */
- HAL_I2C_Mem_Read (&hi2c1, 0x68, StartAddress, I2C_MEMADD_SIZE_8BIT,MPU_DATA, 14, 50);
- float Temp = (MPU_DATA[6]<<8)|MPU_DATA[7];
- if(Temp >32768) Temp-=65536;
- Temp = (36.53+ Temp/340);
- short int ACCEL_XOUT1 = (( MPU_DATA[0]<<8) | MPU_DATA[1]);ACCEL_XOUT = (double)ACCEL_XOUT1/16384;
- short int ACCEL_YOUT1 = (( MPU_DATA[2]<<8) | MPU_DATA[3]);ACCEL_XOUT =(double)ACCEL_YOUT1/16384;
- short int ACCEL_ZOUT1 = (( MPU_DATA[4]<<8) | MPU_DATA[5]);ACCEL_ZOUT = (double)ACCEL_ZOUT1/16384;
- short int GYRO_XOUT1= ((MPU_DATA[8]<<8) | MPU_DATA[9]);GYR0_XOUT = (double)GYRO_XOUT1/65.5;
- short int GYRO_YOUT1=((MPU_DATA[10]<<8) | MPU_DATA[11]);GYR0_YOUT = (double)GYRO_YOUT1/65.5;
- short int GYRO_ZOUT1= ((MPU_DATA[12]<<8) | MPU_DATA[13]);GYR0_ZOUT = (double)GYRO_ZOUT1/65.5;
- printf("temp= %0.2f" ,Temp);
- printf("X= %0.2f,y=%0.2f,z=%0.2f," ,ACCEL_XOUT,ACCEL_YOUT,ACCEL_ZOUT);
- printf("X= %0.2f,y=%0.2f,z=%0.2f," ,GYR0_XOUT,GYR0_YOUT,GYR0_ZOUT);
- printf("\r\n");
- HAL_Delay(200);
復制代碼
板子是正點原子精英
4351C52EACF73D1FEC11815AF6BCECB92.jpg (381.75 KB, 下載次數: 0)
下載附件
2025-4-8 23:25 上傳
mpu6050引腳
mpu6050引腳2.jpg (52.07 KB, 下載次數: 0)
下載附件
2025-4-8 23:29 上傳
硬件連接
88C0179FD3F4B638EDD8FF80BF162192.jpg (210.45 KB, 下載次數: 0)
下載附件
2025-4-8 23:27 上傳
硬件連接.jpg (46.88 KB, 下載次數: 0)
下載附件
2025-4-8 23:31 上傳
操作時,下載程序boot0為0,下載好后關電源將boot0為1,然后再開電源打開串口調試助手。
應該不是這樣原因吧......
下載程序時看著是好的
但串口調試助手打開串口,無數據顯示
|