chen
2024-12-13 e4581b34b42ae92d043e0fc29e1d745c396bce8f
keil/include/drivers/PCA9555.c
@@ -154,7 +154,7 @@
//读1个字节,ack=1时,发送ACK,ack=0,发送nACK,不是一样的
uint8_t IIC2_Read_pca_Byte(unsigned char ack)
{
    unsigned char i,receive=0;
    unsigned char i,receive=0,bit=0;
      gpio_pin_set_dir(SDA_PIN,GPIO_DIR_IN,0); //设置为输入读取电平
//      io_pull_set(SDA_PIN , IO_HIGH_Z, IO_PULL_UP_NONE);
    for(i=0; i<8; i++ )
@@ -162,8 +162,11 @@
        SCL_0;
        delay_us(6);//修改时间
        SCL_1;
        receive<<=1;
        if(IIC2_READ_SDA)receive++;
        //receive<<=1;
        if(IIC2_READ_SDA){
               bit=1<<i;
               receive|=bit;
            }
        delay_us(5);
    }
      SCL_0;
@@ -435,20 +438,27 @@
{
//IIC_gpio_pca_init();//配置IIC管脚
   
   PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_OUTPUT_CONFIG_MASK,PCA_OUTPUT_CONFIG_MASK);//全配置为输出
   //PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_OUTPUT_CONFIG_MASK,PCA_OUTPUT_CONFIG_MASK);//全配置为输出
   
   //PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_INPUT_CONFIG_MASK,PCA_INPUT_CONFIG_MASK);//全配置为输入
   PCA9555_write_config_port_data(PCA9555_DEVICE_ADDR,PCA_INPUT_CONFIG_MASK,PCA_INPUT_CONFIG_MASK);//全配置为输入
   //PCA9555_write_polarity_port_data(PCA9555_DEVICE_ADDR,0x00,0x00);//翻转
   PCA9555_Set_One_Value_Config(WAKE_UP,1);
   //PCA9555_Set_One_Value_Config(WAKE_UP,1);
   //PCA9555_Set_All_Output(1);
   PCA9555_Set_One_Value_Config(GPS_POWER,0);//设置GPS为输出
   PCA9555_Set_One_Value_Output(GPS_POWER,1);//拉高GPS
   PCA9555_Set_One_Value_Config(ADC_MINIUS,0);//设置ADC输出
   PCA9555_Set_One_Value_Output(ADC_MINIUS,1);//默认拉高
   PCA9555_Set_One_Value_Config(MCU_A,0);//设置串口复用芯片切换
   PCA9555_Set_One_Value_Output(MCU_A,1);//输出高电平为uart通讯
   PCA9555_Set_One_Value_Config(INPUT_5V,1);//设置5V输入检测
   //PCA9555_readdata_from_output_register(PCA9555_DEVICE_ADDR,pca9555writedata_input);
   //PCA9555_Set_One_Value_Output(AIR780E_ENBALE,0);
   //PCA9555_Set_One_Value_Output(PWR_ON,0);
//   PCA9555_Set_All_Output(0);
   //PCA9555_readdata_from_polarity_register(PCA9555_DEVICE_ADDR,pca9555writedata_input);
   PCA9555_readdata(PCA9555_DEVICE_ADDR,pca9555writedata_input);//读输入寄存器的值
   PCA9555_readdata_from_config_register(PCA9555_DEVICE_ADDR,pca9555writedata_config);
   //PCA9555_readdata_from_config_register(PCA9555_DEVICE_ADDR,pca9555writedata_config);
//   PCA9555_Set_All_Output(0);//全部拉低
   
   //测试