微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新人求问: PCF8591 读部分 部分代码的作用

新人求问: PCF8591 读部分 部分代码的作用

时间:10-02 整理:3721RD 点击:
红色代码的作用是什么? 我只想读里面的数据 为什么要先发一个写地址过去?
实践得到去掉后程序时无法正常进行的
代码如下:
void ADC_PCF8591(uchar controlbyte)
{
    uchar i=0;
iic_start();              
IICSendByte(PCF8591_WRITE); // 寻址地址
check_ACK();
if(F0 == 1)
{
  SystemError = 1; //表示从机发生错误
  return;
}
IICSendByte(controlbyte); //控制字
check_ACK();
if(F0 == 1)
{
  SystemError = 1;
  return;
}
         //还未开始AD转化 */
    iic_start();                //重新发送开始命令 在写模式,
        //数据传输通过发送下一个数据传输的停止条件或开始条件结束
    IICSendByte(PCF8591_READ); //控制字
check_ACK();
if(F0 == 1)
{
  SystemError = 1;
  return;
}
  
    IICreceiveByte();   //空读一次,调整读顺序
    slave_ACK();        //收到一个字节后发送一个应答位
while(i<4)
{  
   //receive_da=;
   receivebuf[i++]=IICreceiveByte();//receive_da;
   slave_ACK();       //收到一个字节后发送一个应答位
}
slave_NOACK();       //收到最后一个字节后发送一个非应答位
iic_stop();
}

红字的作用我感觉是,发送一个控制字节,选择通道?

单片机对PCF8591进行初始化,一共发送3个字节即可。一为器件地址字节,二为控制字节,三为数据字节

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top