stm32f407通过HAL完成I2C读写hym8563的代码中,HAL_I2C_Mem_Write函数的返回值为1,怎么改
时间: 2024-03-05 18:49:34 浏览: 143
I2C.zip_STM32F407 I2C_stm32_wife92h
HAL_I2C_Mem_Write函数的返回值为1表示发送成功,如果你需要修改返回值,可以通过以下两种方式实现:
1. 修改HAL库源码:在HAL_I2C_Mem_Write函数的定义处,将返回值修改为你期望的值。但是这种方式需要你重新编译HAL库,不建议使用。
2. 在调用HAL_I2C_Mem_Write函数时,手动修改返回值:在调用HAL_I2C_Mem_Write函数的语句后面添加一行代码,将返回值修改为你期望的值。例如:
```
if(HAL_I2C_Mem_Write(&hi2c1, devAddr, memAddr, memAddrSize, data, dataSize, 1000) == HAL_OK) {
// 发送成功
} else {
// 发送失败
HAL_Delay(10);
HAL_I2C_DeInit(&hi2c1);
HAL_I2C_Init(&hi2c1);
// 修改返回值为0
__HAL_LOCK(&hi2c1);
hi2c1.State = HAL_I2C_STATE_READY;
__HAL_UNLOCK(&hi2c1);
}
```
在上面的代码中,如果HAL_I2C_Mem_Write函数返回值为HAL_OK,则表示发送成功;否则,将返回值修改为0,并重新初始化I2C总线。
阅读全文