由于错误的定义了HAL_I2C_Mem_Read函数第四个形数,随意的写成了 8

HAL_I2C_Mem_Read( &hi2c1,IIC_ReadAddr, 10, 8, array_read, 10, 1000 );

造成了,IIC在通讯过程中不正常的停止,函数并报出错误代码“HAL_ERROR“,波形如下

将代码改成如下方式

HAL_I2C_Mem_Read( &hi2c1,IIC_ReadAddr, 10, I2C_MEMADD_SIZE_16BIT, array_read, 10, 1000 );

函数的第四个参数使用了官方库的宏定义,官方库宏定义如下

/** @defgroup I2C_MEMORY_ADDRESS_SIZE I2C Memory Address Size* @{*/
#define I2C_MEMADD_SIZE_8BIT            (0x00000001U)
#define I2C_MEMADD_SIZE_16BIT           (0x00000002U)

目前通讯正常
总结:由于随意的参数定义,没有严格使用官方的宏定义,造成查找问题忽略了这个点,所以以后要尽量使用官方宏定义,保证程序的可移植,并且减少很容易被忽略的错误
最后,要非常感谢 AlexXU(ST),没有他的帮助,我很难发现这个问题

关于 STM32G0/G4/L4 HAL_IIC HAL_I2C_Mem_Read 函数读取M24C64存储芯片遇到的问题相关推荐

  1. pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)

    pandas将列表list插入到dataframe的单元格中.pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes) 目录

  2. pandas使用read_csv函数读取文件并解析日期数据列(parse dates)、pandas使用read_csv函数读取文件并将缺失值转化为空字符串

    pandas使用read_csv函数读取文件并解析日期数据列(parse dates).pandas使用read_csv函数读取文件并将缺失值转化为空字符串 目录

  3. pandas使用read_csv函数读取文件时指定数据列的数据类型、pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串

    pandas使用read_csv函数读取文件时指定数据列的数据类型.pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串 目录

  4. pandas使用read_csv函数读取文件最后N行数据并保留表头、pandas使用read_csv函数读取网络url链接数据

    pandas使用read_csv函数读取文件最后N行数据并保留表头.pandas使用read_csv函数读取网络url链接数据 目录

  5. R语言使用haven包的read_spss函数读取spss格式数据、使用haven包的read_sas函数读取SAS格式数据、使用haven包的read_dta函数读取Stata格式数据

    R语言使用haven包的read_spss函数读取spss格式数据.使用haven包的read_sas函数读取SAS格式数据.使用haven包的read_dta函数读取Stata格式数据 目录

  6. R语言使用read.delim函数读取带分隔符的文本文件

    R语言使用read.delim函数读取带分隔符的文本文件 目录 R语言使用read.delim函数读取带分隔符的文本文件 #read.delim函数语法

  7. R语言scan函数读取文件为向量或者列表格式实战

    R语言scan函数读取文件为向量或者列表格式实战 目录 R语言scan函数读取文件为向量或者列表格式实战 #基本语法

  8. R语言readLines函数、n.readLines函数、readline函数读取文本文件实战

    R语言readLines函数.n.readLines函数.readline函数读取文本文件实战 目录 R语言readLines函数.n.readLines函数.readline函数读取文本文件实战 # ...

  9. 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )

    文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...

最新文章

  1. 网络营销外包浅析B站破圈运营是如何增强网络营销能力的?
  2. 第七篇:使用 CUDA 进行计算优化的两种思路
  3. Spring Boot实现简单的用户权限管理(超详细版)
  4. appcompat_v7 引起的新建Android工程编译不过的问题 (转载)
  5. 本机连接opc server有部分数据不刷新_实时数据库PI在企业MES系统中的应用
  6. liunx系统优化之 TCP sysctl
  7. 基于dijsktra算法的最短路径求解_基于dijkstra算法的AGV路径规划(含C++代码)
  8. python中quad_python – 沿quadmesh的x轴的日期
  9. Metaweblog在Android上使用
  10. oracle默认端口号是,sqlserver、mysql、oracle各自的默认端口号
  11. [破解]Shark恒破解基础教程笔记
  12. 7.2 Flowable 背压
  13. 怎么在手机上取消双重认证_用手机在淘宝上怎么开网店?流程步骤详解
  14. 信创实践之达梦数据库介绍
  15. 如何成为一个高级java程序员
  16. 手指和手势识别算法原理和解析
  17. 用vb.net制作贪吃蛇游戏
  18. 如何判断两个QQ好友之间是否为好友关系
  19. 学术会议日常英语交流_有效的日常会议的3个问题
  20. 乐鑫(ESPRESSIF) ESP32 ESP-IDF设置环境变量出现“安全频道支持出错”问题的解决办法

热门文章

  1. 从锤子手机谈产品的逼格
  2. ios-UIImageView的一些常用的方法
  3. asp.net性能优化
  4. 【期末】202I-2022 IT项目管理期末考试(广州大学)
  5. Linux split命令:拆分大的tar压缩包然后解压
  6. linux 获取CPU NUMA内存节点信息
  7. golang错误处理机制(异常处理)
  8. git bash解决中文乱码问题
  9. 流式计算框架Storm网站访问来源实时统计及存储到redis代码示例
  10. Linux CentOS 6.x 关闭图形化界面的方法