(配置GPIO详细具体可以看官网的手册,我就是快速列举几个能用的供参考,可能不全但是测过能用)
1.配置引脚状态
可以用
int gpio_init(enum gpio_port port, const struct gpio_config *config);
int gpio_set_mode(enum gpio_port port, u32 pin, enum gpio_mode mode);
举例
struct gpio_config gpio_config_test = {
.pin = PORT_PIN_0 | PORT_PIN_1 | PORT_PIN_2 | PORT_PIN_3,//多个IO一起初始化
.mode = PORT_OUTPUT_LOW,//PORT_INPUT_PULLUP_10K,
.hd = PORT_DRIVE_STRENGT_2p4mA,
};
//配置PB0/PB1/PB2/PB3输出模式并输出0
gpio_init(PORTB, &gpio_config_test);
配置gpio_set_mode其实有两种方法 一种是按照接口去配置 另一种是用gpio.h提供的宏定义去配置
举例
gpio_set_mode(PORTA,PORT_PIN_xx,PORT_INPUT_FLOATING);
gpio_set_mode(IO_PORT_SPILT(IO_PORTA_xx), PORT_INPUT_PULLDOWN_10K);
2.输入输出
输出高低电平 并且想要过程中翻转也有很多办法
int gpio_set_mode(enum gpio_port port, u32 pin, enum gpio_mode mode);
// 设置单个io输出电平(需先配置为输出). gpio:IO_PORTA_00; value:0:out 0, 1:out 1 int gpio_write(u32 gpio, u32 value);
输入读取和输出一样需要先配置好状态才能生效
使用
int gpio_read(u32 gpio);// 读取单个io输入值. gpio:IO_PORTA_00
最后 需要注意一个地方,IO_PORTA_XX和PORT_PIN_XX是不同的 read和write都是用IO开头的 配置的时候用的PRO_PIN或者直接宏定义填写IO_PORTA_XX
标签:PIN,PORTA,mode,IO,GPIO,gpio,PORT,杰里,AW31N From: https://blog.csdn.net/weixin_51539132/article/details/139801720