Files

35 lines
899 B
C

/**
* @file gpio.h
* @brief GPIO 模式配置和读写
* STC8H 端口模式由 PxM0/PxM1 控制:
* 00: 准双向口 (弱上拉)
* 01: 推挽输出
* 10: 高阻输入
* 11: 开漏输出
*/
#ifndef __GPIO_H
#define __GPIO_H
#include "stc8h.h"
typedef enum {
GPIO_MODE_BIDIR = 0x00, /* 准双向 */
GPIO_MODE_PUSHPULL = 0x01, /* 推挽输出 */
GPIO_MODE_INPUT = 0x02, /* 高阻输入 */
GPIO_MODE_OD = 0x03, /* 开漏输出 */
} GPIOMode_e;
void gpio_set_mode(uint8_t port, uint8_t pin, GPIOMode_e mode);
void gpio_write(uint8_t port, uint8_t pin, uint8_t val);
uint8_t gpio_read(uint8_t port, uint8_t pin);
void gpio_toggle(uint8_t port, uint8_t pin);
/* 端口编号 */
#define PORT_P0 0
#define PORT_P1 1
#define PORT_P2 2
#define PORT_P3 3
#define PORT_P4 4
#define PORT_P5 5
#endif