【发布时间】:2019-06-21 22:50:02
【问题描述】:
我需要写入寄存器以将设备踢出启动并进入应用程序模式,以便在ST-Nucleo-F767ZI 上使用 I2C。我目前正在使用ST提供的HAL函数HAL_I2C_Mem_Write向寄存器写入数据,但是这个函数要求数据不是NULL。使用 ST HAL ping 寄存器的正确方法是什么?是HAL_I2C_Master_Transmit吗?
【问题讨论】:
我需要写入寄存器以将设备踢出启动并进入应用程序模式,以便在ST-Nucleo-F767ZI 上使用 I2C。我目前正在使用ST提供的HAL函数HAL_I2C_Mem_Write向寄存器写入数据,但是这个函数要求数据不是NULL。使用 ST HAL ping 寄存器的正确方法是什么?是HAL_I2C_Master_Transmit吗?
【问题讨论】:
上述问题的答案是肯定的 - 处理寄存器 ping 的正确方法是通过 HAL_I2C_Master_Transmit。该函数将传输提供的数据——在这种情况下是设备上的寄存器地址。 HAL_I2C_Mem_Write 函数是一个更高级别的函数,它期望调用者将数据写入寄存器;因此,在函数本身中,如果输入 size 为 0 或 pData 为 NULL,则驱动程序将抛出 HAL_ERROR。
【讨论】: