123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- #ifndef __HAL_NCA9555_H__
- #define __HAL_NCA9555_H__
-
- #include "hc32_ll_gpio.h"
- #include "hc32_ll_fcg.h"
- #include "hc32_ll_interrupts.h"
- #include "hc32_ll_tmr0.h"
- #include "ring_buf.h"
- #include "hc32_ll_aos.h"
-
-
-
- /***************************************************IIC 驱动部门**********************************************************/
- #define IIC_SCL_GPIO_PORT gpioPortB
- #define IIC_SCL_GPIO_PIN 1
- #define IIC_SDA_GPIO_PORT gpioPortB
- #define IIC_SDA_GPIO_PIN 2
- #define IIC_SCL_SET_GPIO_OUTPUT_STATUS(status) if(status == 1) GPIO_PinOutSet(IIC_SCL_GPIO_PORT, IIC_SCL_GPIO_PIN);\
- else if(status == 0) GPIO_PinOutClear(IIC_SCL_GPIO_PORT, IIC_SCL_GPIO_PIN);
- #define IIC_SDA_SET_GPIO_OUTPUT_STATUS(status) if(status == 1) GPIO_PinOutSet(IIC_SDA_GPIO_PORT, IIC_SDA_GPIO_PIN);\
- else if(status == 0) GPIO_PinOutClear(IIC_SDA_GPIO_PORT, IIC_SDA_GPIO_PIN);
- #define IIC_SDA_GET_GPIO_INPUT_STATUS GPIO_PinInGet(IIC_SDA_GPIO_PORT, IIC_SDA_GPIO_PIN)
- void IIC_gpio_init(void);
- void IIC_start(void);
- void IIC_stop(void);
- uint8_t IIC_wait_ack(void);
- void IIC_ack(void);
- void IIC_nack(void);
- void IIC_send_byte(uint8_t txd);
- void IIC_send_byte(uint8_t txd);
- uint8_t IIC_read_byte(unsigned char ack);
- void iic3_init(void);
- void nca9555_set_output_mode(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num);
- void nca9555_set_gpio_output_status(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num, uint8_t status);
- void nca9555_set_input_mode(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num);
- uint8_t nca9555_get_gpio_status(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num);
- /***********************************************************IIC 驱动 END**********************************************************************/
- /************************************************************NCA9555 驱动***********************************************************/
- #define SUCCESS 0
- #define ERROR 1
- #define SLAVE_ADDR0 0x40
- #define SLAVE_ADDR1 0x42
- #define SLAVE_ADDR2 0x44
- #define HOST_WRITE_COMMAND 0x00
- #define HOST_READ_COMMAND 0x01
- /*输入相关*/
- #define INPUT_PORT_REGISTER0 0x00 /* 输入端口寄存器0,负责IO00-IO07 */
- #define INPUT_PORT_REGISTER1 0x01 /* 输入端口寄存器1,负责IO10-IO17 */
- //#define POLARITY_INVERSION_PORT_REGISTER0 0x04 /* 输入端口寄存器0,负责IO00-IO07 */
- //#define POLARITY_INVERSION_PORT_REGISTER1 0x05 /* 输入端口寄存器1,负责IO10-IO17 */
- /*输出相关*/
- #define OUTPUT_PORT_REGISTER0 0x02 /* 输入端口寄存器0,负责IO00-IO07 */
- #define OUTPUT_PORT_REGISTER1 0x03 /* 输入端口寄存器1,负责IO10-IO17 */
- #define CONFIG_PORT_REGISTER0 0x06 /* 输入端口寄存器0,负责IO00-IO07 */
- #define CONFIG_PORT_REGISTER1 0x07 /* 输入端口寄存器1,负责IO10-IO17 */
- #define GPIO_PORT0 0
- #define GPIO_PORT1 1
- #define GPIO_Pin00 0x01
- #define GPIO_Pin01 0x02
- #define GPIO_Pin02 0x04
- #define GPIO_Pin03 0x08
- #define GPIO_Pin04 0x10
- #define GPIO_Pin05 0x20
- #define GPIO_Pin06 0x40
- #define GPIO_Pin07 0x80
- #define HIGH 1
- #define LOW 0
- #define NCA9555_WAIT_IS_RETURN_SUCCESS(flag, tips) if(flag != SUCCESS)\
- { \
- printf("%s", tips); \
- return ERROR;\
- }
-
- void nca9555_init(void);
- void nca9555_read_wtite_test(void);
- void nca9555_set_output_mode(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num);
- void nca9555_set_gpio_output_status(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num, uint8_t status);
- void nca9555_set_input_mode(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num);
- uint8_t nca9555_get_gpio_status(uint8_t slave_num, uint8_t gpio_port, uint8_t gpio_num);
-
- void nca9555_task(void *argv);
- /************************************************************NCA9555 驱动 END***********************************************************/
-
- #endif
|