pcf8591简明教程 及 51单片机最大只能读到127问题解决

在使用PCA8591通过IIC总线读取电压时遇到数据异常,最大值仅为127而非预期的255。问题根源在于读取命令后缺少waitask,导致数据丢失。添加waitask后,通信恢复正常。博客强调理解IIC通信时序和规则的重要性,并提供了PCA8591的器件地址和控制字格式详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决问题

今天在使用pcf8591读取电压的时候发现,pcf8591读取的到数据最大只有127,由于pcf8591读取到为8位的数据,所以正常读取到的最大值应该是255,但是我试了好多次发现都是127,最后发现问题出现在发送读取命令后没有waitask,导致读取时出现的数据的丢失。
在这里插入图片描述
如图所示,添加了图中高亮的行后问题待到解决。

总结

pcf8591使用iic总线进行通信,使用的时候一定要弄清iic总线的时序,通信规则,如果读到的数据出现的问题,应该首先考虑读取通信过程是否出现了问题。

器件地址

在这里插入图片描述
高三位为固定值,A2 A1 A0 根据对应引脚上的电平高低来写,最低们为读写控制,读为1写为0

控制字格式

在这里插入图片描述
最高位固定为0,第7位允许模拟电压输出,56位模拟他就是输入方式,一般为00单端输入。在这里插入图片描述
共四种,
第4位默认0,第3位自动增加,开启后每次读会把通信数加一。
第一二位为通道选择位,按以下规则。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值