解决问题
今天在使用pcf8591读取电压的时候发现,pcf8591读取的到数据最大只有127,由于pcf8591读取到为8位的数据,所以正常读取到的最大值应该是255,但是我试了好多次发现都是127,最后发现问题出现在发送读取命令后没有waitask,导致读取时出现的数据的丢失。
如图所示,添加了图中高亮的行后问题待到解决。
总结
pcf8591使用iic总线进行通信,使用的时候一定要弄清iic总线的时序,通信规则,如果读到的数据出现的问题,应该首先考虑读取通信过程是否出现了问题。
附
器件地址
高三位为固定值,A2 A1 A0 根据对应引脚上的电平高低来写,最低们为读写控制,读为1写为0
控制字格式
最高位固定为0,第7位允许模拟电压输出,56位模拟他就是输入方式,一般为00单端输入。
共四种,
第4位默认0,第3位自动增加,开启后每次读会把通信数加一。
第一二位为通道选择位,按以下规则。