设为首页收藏本站

Discuz! Board

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 3766|回复: 2
打印 上一主题 下一主题

NRF52832的twi(IIC)写数据会连续发送2次SLAVE_ADD

[复制链接]

6

主题

16

帖子

101

积分

注册会员

Rank: 2

积分
101
跳转到指定楼层
楼主
qiang4119 发表于 2020-12-4 09:54:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. errCode = nrf_drv_twi_tx(&s_twiHandle, slaveAddr, ®Addr, 1, true);
  2.     if(errCode != NRF_SUCCESS)
  3.     {

  4.         return 1;
  5.     }

  6.     while((!s_twiTxDone) && --timeout);        
  7.     if(!timeout)
  8.     {

  9.         return 2;
  10.     }
  11.     s_twiTxDone = false;
复制代码
用17.0.2的库,写I2C的时候,看波形显示发了两次从机地址再发寄存器地址,这是为什么?以下是配置
  1. void I2C_Init(void)
  2. {
  3.     uint32_t errCode;

  4.         
  5.     // 初始化TWI配置结构体
  6.     const nrf_drv_twi_config_t twiConfig =
  7.     {
  8.         .scl                = BOARD_TWI_SCL_IO,             // 配置TWI SCL引脚
  9.         .sda                = BOARD_TWI_SDA_IO,             // 配置TWI SDA引脚
  10.         .frequency          = NRF_DRV_TWI_FREQ_100K,        // 配置TWI时钟频率
  11.         .interrupt_priority = APP_IRQ_PRIORITY_HIGH         // TWI中断优先级设置
  12.     };
  13.    
  14.     // 初始化TWI
  15.     errCode = nrf_drv_twi_init(&s_twiHandle, &twiConfig, twi_handleEvent, NULL);
  16.     APP_ERROR_CHECK(errCode);
  17.    
  18.     // 使能TWI
  19.     nrf_drv_twi_enable(&s_twiHandle);

  20. }
复制代码
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

6

主题

16

帖子

101

积分

注册会员

Rank: 2

积分
101
沙发
 楼主| qiang4119 发表于 2020-12-4 10:29:36 | 只看该作者
换成15.3.0的库也是一样的,配置上的问题吗?
回复 支持 反对

使用道具 举报

1

主题

2

帖子

25

积分

新手上路

Rank: 1

积分
25
板凳
fengjunzhe 发表于 2020-12-12 20:51:42 | 只看该作者
这啥也看不出来呀;
发两次从机地址,读写位有变化吗
回复 支持 反对

使用道具 举报

Archiver|手机版|小黑屋|Comsenz Inc.   

GMT+8, 2024-4-20 10:17 , Processed in 0.115944 second(s), 28 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表