| | |
| | | //读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++ ) |
| | |
| | | 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; |
| | |
| | | { |
| | | //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);//全部拉低 |
| | | |
| | | //测试 |