由于错误的定义了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. python --time()函数
  2. 20180315 代码错题(1)
  3. linux基础lvm
  4. 几款开源的数据挖掘工具
  5. js面试题知识点全解(一作用域)
  6. CodeForces 340C
  7. 详解Python变量作用域
  8. dplyr | 数据处理函数的功能速查!dplyr包中的十类操作函数汇总(下篇)
  9. Python基础第二十天:线程
  10. VB Environ系统环境变量函数大全
  11. Linux下安装Python3.6(可用)
  12. 【李宏毅2020 ML/DL】P4 Basic Concept
  13. sql2000 数据库置疑解决
  14. git日志 每天导出 shell脚本
  15. 教程篇:《基础模块4》金蝶K3WISE15.0-客户端安装与卸载
  16. MySQL数据文件的组织
  17. html5网页制作心得体会,学习网页制作心得体会范文3篇
  18. 引用 USB启动盘,将DOS工具集成到WinPE的grub - Windows
  19. macos系统镜像iso_Windows10操作系统iso镜像、微软正版软件下载站:MSDN,我告诉你...
  20. OpenVINO之链接库

热门文章

  1. Spring中ApplicationContext加载机制和配置初始化
  2. svn 413 Request Entity Too Large 错误的解决方法
  3. SemSorGrid4Env
  4. WSE 3.0异步调用, MTOM, Custom Policy Trace Assertion
  5. 【IDEA】干掉注释自动在行首
  6. scala for循环
  7. docker run常用参数说明
  8. eclipse报jvm terminated.exitcode=2错误的解决方法
  9. 小米手机系统服务组件是干什么的_怎么查看小米手机MIUI系统的基本功能-小米手机MIUI系统基础功能查询方法讲解...
  10. python多线程并发编程技术_同步线程 - Python并发编程教程™