CC2541硬件I2C驱动SD3078填坑指南

本文介绍了如何在CC2541上使用硬件I2C驱动SD3078,强调了CC2541的I2C主设备初始化和读写操作的注意事项,包括中断处理、电源管理模式下的配置问题,以及SD3078日历寄存器的读写实现。
摘要由CSDN通过智能技术生成

关于CC2541的硬件I2C

  1. TI的hal库已经写好了相关的驱动,不需要自己硬着头皮去看数据手册了,hal_i2c.c文件存放路径是:C:\Texas Instruments\BLE-CC254x-1.4.2.2\Components\hal\target\CC2541ARC,这个文件夹里的hal_i2c.c包含了主和从的驱动。
  2. 硬件I2C只有CC2541才具备,CC2540用usb控制器取代了I2C。
  3. hal_i2c.h头默认初始化的是slave,需要在宏定义里把HAL_I2C_MASTER改为TRUE
#if !defined HAL_I2C_MASTER
#define HAL_I2C_MASTER  FALSE
#endif

#if !defined HAL_I2C_SLAVE
#if HAL_I2C_MASTER
#define HAL_I2C_SLAVE   FALSE
#else
#define HAL_I2C_SLAVE   TRUE
#endif
#endif
  1. 工程的预处理器需要添加HAL_I2C=TRUE,编译的时候需要这个宏,不加也行,把头里无关宏删除干净就行。
  2. 初始化为master设备时不需要写地址寄存器I2CADDR,这是从设备或者多主机时候才用的,无需理会。因此初始化函数只需要传入时钟参数。
HalI2CInit(i2cClock_267KHZ);
  1. 读函数说明,应答是由硬件自动控制的,库函数仅实现了从零地址寄存器开始读取的方法——START、写器件地址|方向读、写buffer数据、STOP。无法完成指定寄存器地址读取,需要自己实现。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值