| | |
| | | //读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_readdata_from_output_register(PCA9555_DEVICE_ADDR,pca9555writedata_input); |
| | |
| | | // 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);//全部拉低 |
| | | |
| | | //测试 |