关于 STM32G0/G4/L4 HAL_IIC HAL_I2C_Mem_Read 函数读取M24C64存储芯片遇到的问题
由于错误的定义了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存储芯片遇到的问题相关推荐
- pandas将列表list插入到dataframe的单元格中、pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes)
pandas将列表list插入到dataframe的单元格中.pandas使用read_csv函数读取文件并设置保留数值的前置0( leading zeroes) 目录
- pandas使用read_csv函数读取文件并解析日期数据列(parse dates)、pandas使用read_csv函数读取文件并将缺失值转化为空字符串
pandas使用read_csv函数读取文件并解析日期数据列(parse dates).pandas使用read_csv函数读取文件并将缺失值转化为空字符串 目录
- pandas使用read_csv函数读取文件时指定数据列的数据类型、pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串
pandas使用read_csv函数读取文件时指定数据列的数据类型.pandas使用read_csv函数读取文件时通过keep_default_na参数设置缺失值替换为空字符串 目录
- pandas使用read_csv函数读取文件最后N行数据并保留表头、pandas使用read_csv函数读取网络url链接数据
pandas使用read_csv函数读取文件最后N行数据并保留表头.pandas使用read_csv函数读取网络url链接数据 目录
- 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格式数据 目录
- R语言使用read.delim函数读取带分隔符的文本文件
R语言使用read.delim函数读取带分隔符的文本文件 目录 R语言使用read.delim函数读取带分隔符的文本文件 #read.delim函数语法
- R语言scan函数读取文件为向量或者列表格式实战
R语言scan函数读取文件为向量或者列表格式实战 目录 R语言scan函数读取文件为向量或者列表格式实战 #基本语法
- R语言readLines函数、n.readLines函数、readline函数读取文本文件实战
R语言readLines函数.n.readLines函数.readline函数读取文本文件实战 目录 R语言readLines函数.n.readLines函数.readline函数读取文本文件实战 # ...
- 【Android 逆向】代码调试器开发 ( ptrace 函数 | 读取进程内存数据 )
文章目录 一.读取进程内存数据 二.读取流程 三.完整代码 一.读取进程内存数据 使用 ptrace 函数读取内存数据 : ptrace(PTRACE_PEEKTEXT, m_nPid, (void* ...
最新文章
- 网络营销外包浅析B站破圈运营是如何增强网络营销能力的?
- 第七篇:使用 CUDA 进行计算优化的两种思路
- Spring Boot实现简单的用户权限管理(超详细版)
- appcompat_v7 引起的新建Android工程编译不过的问题 (转载)
- 本机连接opc server有部分数据不刷新_实时数据库PI在企业MES系统中的应用
- liunx系统优化之 TCP sysctl
- 基于dijsktra算法的最短路径求解_基于dijkstra算法的AGV路径规划(含C++代码)
- python中quad_python – 沿quadmesh的x轴的日期
- Metaweblog在Android上使用
- oracle默认端口号是,sqlserver、mysql、oracle各自的默认端口号
- [破解]Shark恒破解基础教程笔记
- 7.2 Flowable 背压
- 怎么在手机上取消双重认证_用手机在淘宝上怎么开网店?流程步骤详解
- 信创实践之达梦数据库介绍
- 如何成为一个高级java程序员
- 手指和手势识别算法原理和解析
- 用vb.net制作贪吃蛇游戏
- 如何判断两个QQ好友之间是否为好友关系
- 学术会议日常英语交流_有效的日常会议的3个问题
- 乐鑫(ESPRESSIF) ESP32 ESP-IDF设置环境变量出现“安全频道支持出错”问题的解决办法