/**
* @brief Write an amount of data in blocking mode to a specific memory address
* @param hi2c: pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for I2C module
* @param DevAddress: Target device address
* @param MemAddress: Internal memory address
* @param MemAddSize: Size of internal memory address
* @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent
* @param Timeout: Timeout duration
* @retval HAL status
*/
每个函数上面都有相应参数的注释
/**
* @brief Write an amount of data in blocking mode to a specific memory address
* @param hi2c: pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for I2C module
* @param DevAddress: Target device address 目标器件地址,比如24c02的读地址为0xA1,写地址为0xA0
* @param MemAddress: Internal memory address 寄存器地址,比如你要写数据从24c02的第2个字节开始,那么就是0x02,要完整的写入所有的寄存器那么就从0x00开始写入
* @param MemAddSize: Size of internal memory address 准备写入的寄存器大小,比如24c02你要写入2K个字节那么就是0x800
* @param pData: Pointer to data buffer 指向数据(数组)的指针,这里存放了你准备写入的一系列数据..
* @param Size: Amount of data to be sent 准备写入的数据数量,比如你只准备写入10个,就是0x0a
* @param Timeout: Timeout duration 超时时间,如果在给定时间没收到ack则超时退出写入
* @retval HAL status
*/
6 个回复
Sphinx
赞同来自: A GUNSLINGER 、coolguy
admin
赞同来自: A GUNSLINGER
* @brief Write an amount of data in blocking mode to a specific memory address
* @param hi2c: pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for I2C module
* @param DevAddress: Target device address
* @param MemAddress: Internal memory address
* @param MemAddSize: Size of internal memory address
* @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent
* @param Timeout: Timeout duration
* @retval HAL status
*/
每个函数上面都有相应参数的注释
老发
赞同来自:
MemAddress是接收用的缓冲地址吗?还是外部目标存储器的地址?
发送用的是指针,接收用的又不是指针,搞得不好理解搞了一天,用不转这个HAL的IIC,用模拟的不到30分钟就搞定了
admin
赞同来自: A GUNSLINGER 、我、依然潇洒 、ZHANGWEMI 、coolguy
nideyangzi2046
赞同来自: BG4RFF 、bardeen
* @brief Write an amount of data in blocking mode to a specific memory address
* @param hi2c: pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for I2C module
* @param DevAddress: Target device address 目标器件地址,比如24c02的读地址为0xA1,写地址为0xA0
* @param MemAddress: Internal memory address 寄存器地址,比如你要写数据从24c02的第2个字节开始,那么就是0x02,要完整的写入所有的寄存器那么就从0x00开始写入
* @param MemAddSize: Size of internal memory address 准备写入的寄存器大小,比如24c02你要写入2K个字节那么就是0x800
* @param pData: Pointer to data buffer 指向数据(数组)的指针,这里存放了你准备写入的一系列数据..
* @param Size: Amount of data to be sent 准备写入的数据数量,比如你只准备写入10个,就是0x0a
* @param Timeout: Timeout duration 超时时间,如果在给定时间没收到ack则超时退出写入
* @retval HAL status
*/
MemAddSize 指的是内存寄存器数据格式 有I2C_MEMADD_SIZE_8BIT 以及 I2C_MEMADD_SIZE_16BIT
bardeen
赞同来自: 月夜叉-yaksa 、lukunlei 、额囍 、亓安先生 、明天早上吃啥呢
楼上admin对MemAddSize的注释是错的,根本就没理解对英文注释的意思!
MemAddSize指的是寄存器地址类型;
只能取I2C_MEMADD_SIZE_8BIT 或者 I2C_MEMADD_SIZE_16BIT;
参看“stm32f1xx_hal_i2c.h”第272行和“stm32f1xx_hal_i2c.c”第5016行;