CH582 硬件IIC从机的工作流程是怎样的,I2C_Init之后的下面这段是为了检测主机有没有写数据过来嘛
while(!I2C_CheckEvent(I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED)); while(i < 6) { if(I2C_GetFlagStatus(I2C_FLAG_RXNE) != RESET) { RxData[i] = I2C_ReceiveData(); i++; } }
如果不需要开机就做检测连接,是否可以跳过,直接调用下列初始化函数
struct i2c_slave_cb slave_user = { .on_receive = i2c_on_slave_receive_user, .on_transmit = i2c_on_slave_transmit_user, }; i2c_app_init(SLAVE_ADDR); i2c_slave_cb_register(&slave_user);
还有例程如何实现从不同的地址读写数据,做到IIC从机不同寄存器地址处读写的效果
热门产品 :
CH641: PD及无线充电专用MCU