基于STM32的,模擬IIC,來讀取MPU6050的數據。
單片機源程序如下:
- #include "stm32f10x.h"
- #include "myiic.h"
- #include "mpu6050.h"
- //*****************************************************************************************************
- //向I2C設備寫入一個字節數據
- //*****************************************************************************************************
- void Single_WriteIIC(unsigned char REG_Address,unsigned char REG_data)
- {
- IIC_Start(); //起始信號
- IIC_Send_Byte(SlaveAddress); //發送設備地址+寫信號
- IIC_Send_Byte(REG_Address); //內部寄存器地址,
- IIC_Send_Byte(REG_data); //內部寄存器數據,
- IIC_Stop(); //發送停止信號
- }
- //*******************************************************************************************************
- //從I2C設備讀取一個字節數據
- //*******************************************************************************************************
- unsigned char Single_ReadIIC(unsigned char REG_Address)
- {
- unsigned char REG_data;
- IIC_Start(); //起始信號
- IIC_Send_Byte(SlaveAddress); //發送設備地址+寫信號
- IIC_Send_Byte(REG_Address); //發送存儲單元地址,從0開始
- IIC_Start(); //起始信號
- IIC_Send_Byte(SlaveAddress+1); //發送設備地址+讀信號
- REG_data=IIC_Read_Byte(); //讀出寄存器數據
- IIC_Ack(); //接收應答信號
- IIC_Stop(); //停止信號
- return REG_data;
- }
- //******************************************************************************************************
- //初始化MPU6050
- //******************************************************************************************************
- void InitMPU6050()
- {
- Single_WriteIIC(PWR_MGMT_1, 0x00); //解除休眠狀態
- Single_WriteIIC(SMPLRT_DIV, 0x07);
- Single_WriteIIC(CONFIG, 0x06);
- Single_WriteIIC(GYRO_CONFIG, 0x18);
- Single_WriteIIC(ACCEL_CONFIG, 0x01);
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
mpu6050-模擬iic.zip
(3.42 KB, 下載次數: 73)
2017-12-26 09:34 上傳
點擊文件名下載附件
用模擬iic讀取mpu6050數據 下載積分: 黑幣 -5
|