概述:

Nordic 芯片中TWI 表示的就是I2C,各个芯片的I2C 功能都差不多,不做过多介绍,直接参考官方SDK库进行调试;

SDK 版本: SDK\nRF5_SDK_17.0.2_d674dde\

参考Demo:

打开参考代码:..\nRF5_SDK_17.0.2_d674dde\nRF5_SDK_17.0.2_d674dde\examples\peripheral\twi_sensor

关键的几个函数如下:

初始化twi_init

void twi_init (void)
{ret_code_t err_code;const nrf_drv_twi_config_t twi_lm75b_config = {.scl                = ARDUINO_SCL_PIN,         //指定SCL PIN.sda                = ARDUINO_SDA_PIN,         //指定SDA PIN.frequency          = NRF_DRV_TWI_FREQ_100K,   //指定速度.interrupt_priority = APP_IRQ_PRIORITY_HIGH,.clear_bus_init     = false                     //是否清除之前PIN的设置};err_code = nrf_drv_twi_init(&m_twi, &twi_lm75b_config, twi_handler, NULL);APP_ERROR_CHECK(err_code);nrf_drv_twi_enable(&m_twi);
}

事件回调:

void twi_handler(nrf_drv_twi_evt_t const * p_event, void * p_context)
{switch (p_event->type){case NRF_DRV_TWI_EVT_DONE:if (p_event->xfer_desc.type == NRF_DRV_TWI_XFER_RX){data_handler(m_sample);}m_xfer_done = true;break;default:break;}
}

注: 主要设置m_xfer_done 全局变量,发送/接收是否完成

接受函数nrf_drv_twi_rx()

 ret_code_t err_code = nrf_drv_twi_rx(&m_twi, LM75B_ADDR, &m_sample, sizeof(m_sample));

发送函数 nrf_drv_twi_tx()

  err_code = nrf_drv_twi_tx(&m_twi, LM75B_ADDR, reg, sizeof(reg), false);

大致调试过程如下:

1 代码实现, 分别实现对nrf_drv_twi_init,nrf_drv_twi_rx, nrf_drv_twi_tx相关调用

2 修改工程配置文件sdk_config.h, 增加TWI的相关配置,参考twi_sensor 实现

遇到的问题:

芯片内部上拉电阻问题:  

在nrf_drv_twi_init 初始化参数中,有个clear_bus_init ,  如果设置为ture, 库里面会对SCL、SDA重新初始化,其中就包含了上拉电阻配置;

如果不需要内部上拉电阻,将clear_bus_init 设置为false

速率问题:

从SDK 给的参数看,是支持100K, 250K, 400K 的;

typedef enum
{
    NRF_DRV_TWI_FREQ_100K = NRF_TWI_FREQ_100K , ///< 100 kbps.
    NRF_DRV_TWI_FREQ_250K = NRF_TWI_FREQ_250K , ///< 250 kbps.
    NRF_DRV_TWI_FREQ_400K = NRF_TWI_FREQ_400K   ///< 400 kbps.
} nrf_drv_twi_frequency_t;

从实际测试中,发现如果使用内部上拉,使能跑到100K

我使用的是PCA10040 开发板,板上没有上拉,刚好从设备也没有上拉,只能使用内部的,跑250K, 怎么也跑不起来,估计内部上拉阻值问题,不一定带的起;

后续。。。。待写

nrf52832 TWI/I2C 调试相关推荐

  1. NRF52832学习笔记(19)——TWI(I2C)接口使用

    一.硬件连接 功能口 引脚 SCL 5 SDA 4 二.移植文件 注意:以下出现缺失common.h文件错误,去除即可.uint8改为uint8_t或unsigned char或自己宏定义 链接:ht ...

  2. NORDIC52832 TWI(I2C) 特点 (2)驱动CHT8305C 温湿度传感器

    1. nRF52832 TWI特点 本章描述的是 TWIM (带 EasyDMA 的 TWI 主机) ),本章中的 TWI 均指的是 TWIM 即 TWI 主机. nRF 52832 片内集成的 TW ...

  3. Nordic nRF5 SDK 学习笔记之四, TWI (I2C) 总线

    硬件: nRF52832 SDK: Ver 15.2.0 目标: TWI (I2C) 总线应用 (TWI MASTER 模式) 样例: <InstallFolder>\examples\p ...

  4. I2C调试遇到的问题以及解决办法---“busy死锁状态”以及“从设备地址无应答”问题

    stm32f103c8t6 cubemx 关于I2C通信不通的若干问题解决方法 i2c调试过程中出现BUSY状态 i2c调试过程中,向从设备发送地址,从设备无应答信号传给主设备 总结 i2c调试过程中 ...

  5. STM32L系列+ADXL345的I2C调试

    STM32的硬件I2C调试确实要比模拟麻烦很多啊,一大堆的配置,调通F系列的,本以为直接移植到L系列会很轻松,没想到问题依然很多,现直接附上STM32L系列的I2C初始化及读写函数: 1.GPIO的初 ...

  6. uboot 周立功 mx6g2c imx6ul io口模拟i2c 调试at24c512

    关于 uboot 周立功 mx6g2c imx6ul io口模拟i2c 调试at24c512 cpu模块连接电路 uboot 使用i2c驱动 为如图 修改include/configs/mx6g2c. ...

  7. Proteus使用心得(1) -- I2C调试器

    1. 前言 学习单片机不仅头发会变少,钱包也会变薄.买一套单片机学习套装,加上各式各样的外围器件,动辄就要几百块.然而proteus这款电路仿真软件就很好地照顾到我们穷学生的痛处,妈妈再也不用担心我们 ...

  8. NORDIC52832 TWI(I2C) 读 写 (1)

    1.I2C总线概述 1.1主要特征 nRF52832 片内集成了 TWI Two wire Serial Interface 两线串行总线 TWI 完全兼容 I2C 总线,简单一点,可以直接认为 TW ...

  9. linux i2c调试命令,嵌入式Linux下I2C接口调试

    By Toradex秦海 1).简介 I2C是嵌入式设备最为常用的接口之一,常用于如下面这些应用场景,因此本文就基于嵌入式Linux演示在User Space进行I2C设备调试. - Digital ...

最新文章

  1. 线程同步初解---转载
  2. Java 摄氏和华氏之间的转换
  3. ios 图片 相册 存储方式
  4. 分享篇--esp32直连天猫精灵
  5. 去除win7桌面快捷方式小箭头
  6. 收集21个经典Java面试题
  7. Webpack基础之输出
  8. mate7安装android o,华为Mate7升级安卓6.0详细教程
  9. CAD迷你看图2019破解版|CAD迷你看图2019R5中文破解版下载
  10. 远程学习(一):基于ZeroTier的异地组网及Moon转发节点搭建
  11. html怎么改项目符号的颜色,word2003项目符号颜色的修改方法
  12. 802.11ac 速率 + 信道 + 国家码信道
  13. android系统开机logo定制
  14. ICLR2020国际会议精彩演讲抢先看(含源码)!!
  15. 海外手机号码正则匹配
  16. Android Studio计算BMI小软件
  17. Java生成微信群组图标
  18. 线性稳压电源和开关稳压电源
  19. 【Python入门教程】第15篇 if条件语句
  20. Javascript 计算众数和中位数的代码

热门文章

  1. gerrit git 邮箱不匹配的问题
  2. MySQL错误–超出了“ max_questions”资源(当前值:1000)
  3. 三大峰会七大论坛,MDCC 2013中国移动开发者大会将在京举行
  4. Skype for Android 无线网络电话随心打
  5. openGauss 准备软硬件安装环境
  6. 水经注离线三维地球触摸GIS系统
  7. three.js加载obj模型和材质
  8. Java多进程从头讲到尾,值得收藏!
  9. 【七夕如何根据情侣倾听的音乐进行薅羊毛】背景音乐是否会影响情侣对酒的选择
  10. 吐槽大会,加个好友,分享资源