OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4731|回复: 3

硬件I2C读取PCF8574导致复位,请问如何解决?

[复制链接]

1

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2014-4-7
在线时间
36 小时
发表于 2022-6-18 21:36:54 | 显示全部楼层 |阅读模式
1金钱
硬件I2C读取PCF8574导致复位,请问如何解决?
开发板是阿波罗H743,MCU:STM32H743IIT6.
采用CubeMX配置I2C,操作AT24C02,AP3216C都正常读写。
读用:HAL_I2C_Mem_Read(&hi2c2,AP3216C_ADDR+1,reg,I2C_MEMADD_SIZE_8BIT,&res,1,1000);
写用:HAL_I2C_Mem_Write(&hi2c2,AP3216C_ADDR,reg,I2C_MEMADD_SIZE_8BIT,&data,1,1000);
写PCF8574用:HAL_I2C_Mem_Write(&hi2c2,PCF8574_ADDR,0,I2C_MEMADD_SIZE_8BIT,&DataToWrite,1,10000);
写工作正常,读时出问题,会导致PCF8574复位,读出值是0,PCF8574的所有输出也变成了0
读用:HAL_I2C_Mem_Read(&hi2c2,PCF8574_ADDR+1,0,I2C_MEMADD_SIZE_8BIT,&temp,1,1000);

后改用软件模拟I2C,读取PCF8574操作正常,写也正常。
请问大佬们,有人遇到过吗?是硬件I2C HAL读指令HAL_I2C_Mem_Read(&hi2c2,PCF8574_ADDR+1,0,I2C_MEMADD_SIZE_8BIT,&temp,1,1000);有bug?
能修改下吗?还是只能全部用软件模拟I2C?
非常感谢。


最佳答案

查看完整内容[请看2#楼]

非常感谢,改用软件模拟I2C了,目前工作正常。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2014-4-7
在线时间
36 小时
 楼主| 发表于 2022-6-18 21:36:55 | 显示全部楼层
非常感谢,改用软件模拟I2C了,目前工作正常。
回复

使用道具 举报

2

主题

369

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4241
金钱
4241
注册时间
2020-7-24
在线时间
714 小时
发表于 2022-6-20 10:19:26 | 显示全部楼层
帮顶  
回复

使用道具 举报

11

主题

2130

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4727
金钱
4727
注册时间
2015-1-10
在线时间
590 小时
发表于 2022-6-20 10:32:07 | 显示全部楼层
监测一下IC复位的时候是不是有个大电流,write的超时时间设短一点试试呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 15:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表