35 lines
899 B
C
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 |