标签:
使用的工程为是基于sdk10工程
在将以nRF51_SDK_10.0.0_dc26b5e\examples\peripheral\twi_sensor作为模版
修改代码main.c
1 #include <stdio.h> 2 #include "boards.h" 3 #include "app_util_platform.h" 4 #include "app_error.h" 5 #include "nrf_drv_twi.h" 6 #include "nrf_delay.h" 7 #include "mpu6050.h" 8 #include "twi_master.h" 9 #include "SEGGER_RTT.h" 10 11 /** 12 * @brief Function for main application entry. 13 */ 14 int main(void) 15 { 16 uint8_t id; 17 twi_master_init(); 18 19 SEGGER_RTT_printf(0, "mpu6050 test\r\n"); 20 SEGGER_RTT_printf(0, "mpu6050 address 0X68\r\n"); 21 if(mpu6050_init(0x68) == false) 22 { 23 SEGGER_RTT_printf(0, "mpu6050 init fail\r\n"); 24 } 25 mpu6050_register_read(0x75U, &id, 1); 26 SEGGER_RTT_printf(0, "mpu6050 id is %02x \r\n",id); 27 28 SEGGER_RTT_printf(0, "mpu6050 address 0X69\r\n"); 29 if(mpu6050_init(0x69) == false) 30 { 31 SEGGER_RTT_printf(0, "mpu6050 init fail\r\n"); 32 } 33 mpu6050_register_read(0x75U, &id, 1); 34 SEGGER_RTT_printf(0, "mpu6050 id is %02x \r\n",id); 35 36 while(true) 37 { 38 } 39 }
备注:当 MPU_AD0 悬空/接 GND 的时候,模块的 IIC 从机地址为:0X68;当 MPU_AD0 接 VCC的时候,模块的 IIC 从机地址为:0X69。
为何要多写一个0X69呢,是由于实际测试的发现PIN8和PIN9短路了。。。所以宝宝心里苦不说。
需要添加文件
..\..\..\..\..\components\drivers_ext\mpu6050\mpu6050.c
..\..\..\..\..\components\drivers_nrf\twi_master\deprecated\twi_sw_master.c
添加头文件
..\..\..\..\..\components\drivers_ext\mpu6050
..\..\..\..\..\components\drivers_nrf\twi_master\deprecated
..\..\..\..\..\components\drivers_nrf\twi_master\deprecated\config
最后更据自己电路修改twi_master_config
#ifndef TWI_MASTER_CONFIG #define TWI_MASTER_CONFIG #define TWI_MASTER_CONFIG_CLOCK_PIN_NUMBER (10U) #define TWI_MASTER_CONFIG_DATA_PIN_NUMBER (9U) #endif
输出结果
标签:
原文地址:http://www.cnblogs.com/libra13179/p/5407663.html