在线时间620 小时
UID317774
ROHM金币0
注册时间2018-5-18
该用户从未签到
论坛元老
- 最后登录
- 2023-6-10
|
今天终于有时间可以调试脉搏传感器了,先上图,
使用的lpc54114开发板,pin23 scl-pin24sda两个管脚
代码使用SDK例程
代码如下
#define EXAMPLE_I2C_MASTER_BASE (I2C1_BASE)
#define I2C_MASTER_CLOCK_FREQUENCY (12000000)
#define EXAMPLE_I2C_MASTER ((I2C_Type *)EXAMPLE_I2C_MASTER_BASE)
#define I2C_MASTER_SLAVE_ADDR_7BIT 0x5bU
#define I2C_BAUDRATE 100000U
#define I2C_DATA_LENGTH 32U
i2c初始化
/* attach 12 MHz clock to FLEXCOMM4 (I2C master) */
CLOCK_AttachClk(kFRO12M_to_FLEXCOMM1);
/* reset FLEXCOMM for I2C */
RESET_PeripheralReset(kFC1_RST_SHIFT_RSTn);
BOARD_InitPins();
I2C_MasterGetDefaultConfig(&masterConfig);
/* Change the default baudrate configuration */
masterConfig.baudRate_Bps = I2C_BAUDRATE;
/* Initialize the I2C master peripheral */
I2C_MasterInit(EXAMPLE_I2C_MASTER, &masterConfig, I2C_MASTER_CLOCK_FREQUENCY);
if (kStatus_Success == I2C_MasterStart(EXAMPLE_I2C_MASTER, I2C_MASTER_SLAVE_ADDR_7BIT, kI2C_Write))
{
int i;
for(i=0; i<sizeof(g_master_txBuff); i++)
{
g_master_txBuff = i;
}
reVal = I2C_MasterWriteBlocking(EXAMPLE_I2C_MASTER, g_master_txBuff, sizeof(g_master_txBuff), kI2C_TransferNoStartFlag);
if (reVal != kStatus_Success)
{
return -1;
}
}
PRINTF("Receive sent data from slave :");
/* Receive blocking data from slave */
start + slaveaddress(w) + subAddress + repeated start + slaveaddress(r) + rx data buffer + stop */
if (kStatus_Success == I2C_MasterStart(EXAMPLE_I2C_MASTER, I2C_MASTER_SLAVE_ADDR_7BIT, kI2C_Write))
{
/* subAddress = 0x01, data = g_master_txBuff - write to slave.
start + slaveaddress(w) + subAddress + length of data buffer + data buffer + stop*/
reVal = I2C_MasterWriteBlocking(EXAMPLE_I2C_MASTER, &deviceAddress, 1, kI2C_TransferNoStopFlag);
if (reVal != kStatus_Success)
{
return -1;
}
reVal = I2C_MasterRepeatedStart(EXAMPLE_I2C_MASTER, I2C_MASTER_SLAVE_ADDR_7BIT, kI2C_Read);
if (reVal != kStatus_Success)
{
return -1;
}
reVal = I2C_MasterReadBlocking(EXAMPLE_I2C_MASTER, g_master_rxBuff, I2C_DATA_LENGTH, 0);
if (reVal != kStatus_Success)
{
return -1;
}
}
运行一下,发现g_master_rxBuff接收里面有数据了,更改不同地址,数据也在变化
明天有空继续深入研究一下
|
|