nRF51822之模拟IIC
使用的工程为是基于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总线是同步通信的一种特殊形式,具有接线口少.控制简单.器件封装形式小.通信 ...
随机推荐
- hdu 1455 Sticks
Sticks Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Statu ...
- 2016.5.27 PHP连接数据库与查询
提示mysql_query() expects parameter 2 to be resource, null given in 错误是因为你没有连接数据库就进行了查询,正常的程序应该这样写: fu ...
- OUYA设备的购买和安装
OUYA设备的购买和安装 在为OUYA这款游戏终端做具体的开发之前,建议读者先上手感受一下这款设备的游戏体验.本节所涉及的内容包括,OUYA设备的购买.安装.设置,以及最终上手开始游戏这一系列的过程本 ...
- DFS POJ 2362 Square
题目传送门 /* DFS:问能否用小棍子组成一个正方形 剪枝有3:长的不灵活,先考虑:若根本构不成正方形,直接no:若第一根比边长长,no 这题是POJ_1011的精简版:) */ #include ...
- ZOJ1516 Uncle Tom's Inherited Land(二分图最大匹配)
一个经典的构图:对格子进行黑白染色,黑白的点分别作XY部的点. 这一题的边就是可以出售的单位面积2的土地,边的端点就是这个土地占用的X部和Y部的两个点. 这样就建好二分图,要求最多土地的答案显然是这个 ...
- Repeatless Numbers[POJ2956]
Repeatless Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 1719 Accepted: 726 ...
- BZOJ3417 : Poi2013 Tales of seafaring
若x到y走k步可行,那么走k+2步也可行 以每个点为起点,BFS处理出到每个点走了奇数步.偶数步的最短路 对于一次询问,如果d不小于相应奇偶性的最短路,则可行 特判:对于孤立点,无论怎么走都不可行 # ...
- android环境安装之android4.2安装(转)
准备学习android,着手安装android时听说很麻烦,在网上看了很多android安装说明,都是android比较早的版本,我这里安装了android4.2,简单记录一下. 安装分为几步,首先申 ...
- shell中(),[]和[[]]的区别
1. 首先,尽管很相似,但是从概念上讲,二者是不同层次的东西."[[",是关键字,许多shell(如ash bsh)并不支持这种方式.ksh, bash(据说从2.02起引入对[[ ...
- Leetcode | Palindrome
Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric char ...