- void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTypeDef *hi2c) {
- // 处理接收到的数据
- ProcessReceivedData();
- // 准备好接收下一个数据包
- HAL_I2C_Slave_Receive_IT(hi2c, buffer, buffer_size);
- }
- void HAL_I2C_SlaveTxCpltCallback(I2C_HandleTypeDef *hi2c) {
- // 发送下一个数据包或结束传输
- PrepareNextDataToSend();
- // 准备好接收来自主机的下一个命令
- HAL_I2C_Slave_Receive_IT(hi2c, buffer, buffer_size);
- }
- void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c) {
- // 处理I2C错误
- HandleI2CError();
- // 重新初始化I2C外设
- HAL_I2C_Init(hi2c);
- }
|