求助HAL_I2C_Mem_Read的用法,硬件I2C,使用HAL

2019-07-20 19:46发布

本帖最后由 weefnn 于 2016-9-30 08:12 编辑

HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);
这个函数具体是怎么用的呢?原子用的是软件模拟的,现在需要用硬件I2C,这个函数不是非常明白,有使用过的网友吗?

(uint16_t  MemAddress, uint16_t MemAddSize,)这两个参数具体是什意思,如何使用?
它的操作时序是什么样的呢?是下面这个样子的吗?是读EEPROM 存储器的时序吗?
Master                               Slave
---------------------                  ------------------------
START
Slave Address + Write
                                       ACK
N (starting register)
                                       ACK
START (repeat)
Slave Address + Read
                                      ACK
                                      Data
ACK
                                     Data
NACK
STOP
*************************************************************************************************
附上该函数的HAL库解释,欢迎讨论感觉I2C用的还是很常见的。
/**
  * @brief  Read an amount of data in blocking mode from 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
  */

手册上的解释是:
HAL_I2C_Mem_Read
Function Name HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef * hi2c, uint16_t DevAddress,
                                                 uint16_t  MemAddress, uint16_t MemAddSize,
                                                 uint8_t * pData, uint16_t  Size, uint32_t Timeout)
Function Description Read an amount of data in blocking mode from a specific memory
address.
Parameters # hi2c: pointer to a I2C_HandleTypeDef structure that contains the configuration information for I2C module
           # DevAddress: Target device address
           # MemAddress: Internal memory address
           # MemAddSize: Size of internal memory address
           # pData: Pointer to data buffer
           # Size: Amount of data to be sent
           # Timeout: Timeout duration
Return values : HAL status


欢迎探讨!!!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。