nRF52832的I2C例程代码
#include "nrf_drv_i2c.h"
#include "app_error.h"
#define I2C_SCL_PIN 0 // SCL引脚号
#define I2C_SDA_PIN 1 // SDA引脚号
#define MAX_PENDING_TRANSACTIONS 5 // 最大等待事务数
static const nrf_drv_i2c_t i2c = NRF_DRV_I2C_INSTANCE(0); // I2C实例号
static uint8_t m_sample[4]; // 读取数据缓冲区
// 完成事件处理函数
void i2c_event_handler(nrf_drv_i2c_evt_t const * p_event, void * p_context)
{
switch (p_event->type)
{
case NRF_DRV_I2C_EVT_DONE:
if (p_event->xfer_desc.type == NRF_DRV_I2C_XFER_RX)
{
// 读取完成,执行对应操作
}
break;
default:
break;
}
}
// 初始化I2C
void i2c_init(void)
{
ret_code_t err_code;
nrf_drv_i2c_config_t config = NRF_DRV_I2C_DEFAULT_CONFIG;
config.scl = I2C_SCL_PIN;
config.sda = I2C_SDA_PIN;
err_code = nrf_drv_i2c_init(&i2c, &config, i2c_event_hand