当前位置: 首页 > article >正文

STM32HAL I2C函数

8.5 使用IIC协议读写EEPROM 硬件方式实现 (HAL库)

**HAL_I2C_Mem_Write() :这种方法可以写1个或者多个字节 **

/**
  * @brief  以阻塞模式向指定的内存地址写入数据
  * @param  hi2c 指向 I2C_HandleTypeDef 结构体的指针,包含指定 I2C 的配置信息
  * @param  DevAddress 目标设备地址:设备在数据手册中的 7 位地址值
  *         在调用该接口之前必须向左移一位
  * @param  MemAddress 内部存储器地址
  * @param  MemAddSize 内部存储器地址的大小
  * @param  pData 指向数据缓冲区的指针
  * @param  Size 要发送的数据量
  * @param  Timeout 超时时间
  * @retval HAL 状态
  */
HAL_StatusTypeDef HAL_I2C_Mem_Write(
    I2C_HandleTypeDef *hi2c, 
    uint16_t DevAddress, 
    uint16_t MemAddress, 
    uint16_t MemAddSize, 
    uint8_t *pData, 
    uint16_t Size, 
    uint32_t Timeout
)

**HAL_I2C_Mem_Read() : 这种方法可以读1个或者多个字节 **

/**
  * @brief  以阻塞模式从指定的内存地址读取数据
  * @param  hi2c 指向 I2C_HandleTypeDef 结构体的指针,包含指定 I2C 的配置信息
  * @param  DevAddress 目标设备地址:设备在数据手册中的 7 位地址值
  *         在调用该接口之前必须向左移一位
  * @param  MemAddress 内部存储器地址
  * @param  MemAddSize 内部存储器地址的大小
  * @param  pData 指向数据缓冲区的指针
  * @param  Size 要读取的数据量
  * @param  Timeout 超时时间
  * @retval HAL 状态
  */
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
);

使用HAL_I2C_Master_Receive(),字内地址要自己发

/**
  * @brief  Receives in master mode an amount of data in blocking mode.
  * @param  hi2c Pointer to a I2C_HandleTypeDef structure that contains
  *                the configuration information for the specified I2C.
  * @param  DevAddress Target device address: The device 7 bits address value
  *         in datasheet must be shifted to the left before calling the interface
  * @param  pData Pointer to data buffer
  * @param  Size Amount of data to be sent
  * @param  Timeout Timeout duration
  * @retval HAL status
  */
HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout)

http://www.kler.cn/a/447057.html

相关文章:

  • STM32裸机系统采用滴答定时器延时
  • Ubuntu安装及删除httpd(Apache)
  • 初识面向对象晨考day09
  • ISP算法之黑电平BLC校正
  • 重拾设计模式--备忘录模式
  • 半连接转内连接 | OceanBase SQL 查询改写
  • Ps:屏幕模式
  • Python3.9的安装和配置
  • C# OpenCV机器视觉:尺寸测量
  • leecode474.一和零
  • 社会工程-交流模型
  • python如何获取excel单元格文字是否加粗
  • ParrotOS,一个与kali类似的渗透测试操作系统
  • 你的第一个博客-第一弹
  • 开源轮子 - Hutool
  • 解析大模型常用微调方法:P-Tuning、Prefix Tuning、Adapter、LoRA
  • 融合机器学习算法:用VotingClassifier实现分类多模型的投票集成
  • ResNext-50模型进行图像识别
  • 越疆科技营收增速放缓:毛利率未恢复,持续亏损下销售费用偏高
  • 如何在Pycharm中添加环境