没问题,把锁直接写到i2c驱动里面更保险
[C] 纯文本查看 复制代码 int32_t Transmit(I2C_ID ID, uint16_t devAddr, uint8_t *buf, int32_t size)
{
I2C_Priv *priv = GetI2CPriv(ID);
if (Lock(&priv->mtx, I2C_MTX_TIMEOUT_MS) != HAL_OK) {
HAL_WRN("mutex failed, i2c ID %d\n", i2cID);
return -1;
}
int32_t ret = I2C_Master_common(i2cID, devAddr, buf, size);
Unlock(&priv->mtx);
return ret;
} |