本人是新手,请问pic16f917与mcp3421之间的I2C通信问题

2020-02-06 09:57发布

pic16f917与mcp3421之间的通信时采用I2C方式,但是两者之间的数据究竟是如何传输的,有些搞不清楚,资料也看了些。希望哪位大哥能指点一下,小弟也是刚学习pic单片机的,谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
yklstudent
2020-02-07 05:13
有用的就这么点而已
int32 MCP3421_READ()
{
         int read_value_a,read_value_b,read_value_c,read_value_d,read_value_e,ERROR;
         int32  value_adc=0x00;
         output_float(MCP3421_SCL);
         output_float(MCP3421_SDA);
         i2c_start();  
         if (i2c_write(0B11010000)==0)   
         if (i2c_write(0B10001000)==0)
         i2c_stop();
        delay_ms(10);
         read_value_a=0;
         read_value_b=0;
         read_value_c=0;
         read_value_d=0;
         read_value_e=0;
         i2c_start();
        if (i2c_write(0B11010001)==0)   
     {
                 read_value_a=i2c_read(1);
                 value_adc=value_adc+read_value_a;
                 value_adc=value_adc<<8;
                 read_value_b=i2c_read(1);
                 value_adc=value_adc+read_value_b;
                 read_value_c=i2c_read(1);               
                read_value_d=i2c_read(1);
                 read_value_e=i2c_read(0);
                 i2c_stop();
                 read_value_a=ERROR;
         }
         return(value_adc);
}

一周热门 更多>