使用的工程为是基于sdk10工程
在将以nRF51_SDK_10.0.0_dc26b5e\examples\peripheral\twi_sensor作为模版
修改代码main.c
#include <stdio.h> #include "boards.h" #include "app_util_platform.h" #include "app_error.h" #include "nrf_drv_twi.h" #include "nrf_delay.h" #include "mpu6050.h" #include "twi_master.h" #include "SEGGER_RTT.h" /** * @brief Function for main application entry. */ int main(void) { uint8_t id; twi_master_init(); SEGGER_RTT_printf(, "mpu6050 test\r\n"); SEGGER_RTT_printf(, "mpu6050 address 0X68\r\n"); if(mpu6050_init(0x68) == false) { SEGGER_RTT_printf(, "mpu6050 init fail\r\n"); } mpu6050_register_read(); SEGGER_RTT_printf(, "mpu6050 id is %02x \r\n",id); SEGGER_RTT_printf(, "mpu6050 address 0X69\r\n"); if(mpu6050_init(0x69) == false) { SEGGER_RTT_printf(, "mpu6050 init fail\r\n"); } mpu6050_register_read(); SEGGER_RTT_printf(, "mpu6050 id is %02x \r\n",id); while(true) { } }
备注:当 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
输出结果
nRF51822之模拟IIC的更多相关文章
-
stm32软件模拟IIC读取PX4FLOW光流传感器数据
这段时间在做全国光电设计大赛,用到了px4的px4flow光流传感器,用软件模拟iic读取数据不定期会导致px4flow死机,查了资料和光流的源码,发现这个光流用了stm32的硬件iic,所以对软件模 ...
-
GPIO模拟IIC接口信号质量分析
信号质量有问题的波形001: 信号质量有问题的波形002: 从上图可以看出,GPIO口模拟的I2C接口,电平都存在半高的情况. 因为I2C的接口是通过GPIO模拟实现的,该时钟信号线SCL内部默认为下 ...
-
lpc1788IO口模拟IIC
#ifndef __MYIIC_H_ #define __MYIIC_H_ #include "common.h" #include "delay.h" #in ...
-
STM32F10X -- 模拟IIC程序
听说STM32的IIC硬件做的很鸡肋,所以在这里通过模拟的方式实现IIC协议.此程序能成功对AT24C02操作. 程序中的带参数宏 IIC_DELAY(time)的功能是延时time us,在实际中具 ...
-
【STM32】IIC的基本原理(实例:普通IO口模拟IIC时序读取24C02)(转载)
版权声明:本文为博主原创文章,允许转载,但希望标注转载来源. https://blog.csdn.net/qq_38410730/article/details/80312357 IIC的基本介绍 ...
-
STM32 软件模拟 IIC 代码,标准库、HAL库可用
#ifndef _IIC_H #define _IIC_H #include "stdio.h" #include "stm32f1xx_hal.h" /* 定 ...
-
GPIO软件模拟IIC时序
一.MPU6050中的IIC时序 1.1 START和STOP SDA和SCL在高电平时,SDA拉低表示START.SCL拉低,表示可以传输数据. SDA和SCL在低电平时,SDA拉高表示STOP. ...
-
模拟IIC总线多设备挂载(12864OLED屏幕+GY30光照传感器)
最终效果展示 OLED屏幕和GY30光照传感器(BH1750FVI)都连接在一个IIC(I2C)总线上,所以只需要接4根线即可.获取到的光照强度可以在OLED上实时显示并通过串口打印.IIC是IO模拟 ...
-
C51—模拟IIC总线实现EEPROM存取数据
a - 什么是IIC总线 -什么是EEPROM -IIC总线的通信格式 模块化设计注解 整体代码 - 什么是IIC总线 IIC总线是同步通信的一种特殊形式,具有接线口少.控制简单.器件封装形式小.通信 ...
随机推荐
-
web.xml中load-on-startup标签的含义
在servlet的配置当中,<load-on-startup>5</load-on-startup>的含义是: 标记容器是否在启动的时候就加载这个servlet. 当值为0或者 ...
-
纯手工打造dropdownlist控件
先上图吧,看看效果. JS代码: ; (function ($) { var DropdownList = function (oDataSouce, oControlsContainer, oLis ...
-
socket.io发送给指定的客户端
http://www.cnblogs.com/ajccom/archive/2013/07/18/3197809.html http://*.com/questions/100 ...
-
linux 编译安装apache
1.下载apache.安装apache #wget http://apache.etoak.com//httpd/httpd-2.4.4.tar.gz #tar zxvf httpd-2.4..4.t ...
-
Delphi引用C对象文件
C语言应用非常广泛,并在世界各地拥有大量的代码库.这些代码库与Delphi的可比性较小,因此如果我们无需转换为Delphi代码而可以直接使用这些库的部分代码就完美了.幸运的是,Delphi允许连接到C ...
-
POJ 3128 Leonardo&#39;s Notebook [置换群]
传送门 题意:26个大写字母的置换$B$,是否存在置换$A$满足$A^2=B$ $A^2$,就是在循环中一下子走两步 容易发现,长度$n$为奇数的循环走两步还是$n$次回到原点 $n$为偶数的话是$\ ...
-
Java 中的纤程库 – Quasar
来源:鸟窝, colobu.com/2016/07/14/Java-Fiber-Quasar/ 如有好文章投稿,请点击 → 这里了解详情 最近遇到的一个问题大概是微服务架构中经常会遇到的一个问题: 服 ...
-
[LeetCode] Inorder Successor in BST II 二叉搜索树中的中序后继节点之二
Given a binary search tree and a node in it, find the in-order successor of that node in the BST. Th ...
-
Max Points on a Line leetcode java
题目: Given n points on a 2D plane, find the maximum number of points that lie on the same straight li ...
-
51nod1117【贪心】
思路:哈夫曼树~~哇塞,那么有道理. 利用堆维护:每次从堆里取两个最小加起来,然后还是最小的两个,最后只剩一根总的 #include <bits/stdc++.h> using names ...