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