Telink的GPIO
GPIO复用
telink的GPIO模拟uart是可以在低功耗的条件下工作的,所以建议低功耗应用使用
(使用场景SWS pin脚,在烧录完成后,转换pin脚功能,使用它作为GPIO模拟发送Tx)
// 正确初始化顺序:
void uart_tx_init() {gpio_set_func(GPIO_PB1, AS_GPIO); // 设为 GPIO 功能gpio_write(GPIO_PB1, 1); // 先设置高电平(避免短暂低电平)gpio_set_output_en(GPIO_PB1, 1); // 再使能输出gpio_set_input_en(GPIO_PB1, 0); // 禁用输入(避免干扰)gpio_setup_up_down_resistor(GPIO_PB1, PM_PIN_PULLUP_10K); // 上拉确保空闲高电平
}
将GPIO模拟Uart的Tx口,替换成GPIO_PB1,通过上面的代码就初始化好了tx口的pin脚,(GPIO_PB1为发送TX的接口)
对了要记得,去修改putc的GPIO模拟uart的发送pin脚,这样才能真正修改完成。
GPIO的通用接口
配置成普通IO还是复用高级功能(uart、spi、iic等)函数
void gpio_set_func(GPIO_PinTypeDef pin, GPIO_FuncTypeDef func);
输入使能函数
void gpio_set_input_en(GPIO_PinTypeDef pin, unsigned int value);
读取pin脚信息函数
unsigned int gpio_read(GPIO_PinTypeDef pin);
输出使能函数
int gpio_is_output_en(GPIO_PinTypeDef pin);
设置pin脚电平
void gpio_write(GPIO_PinTypeDef pin, unsigned int value)
设置上下拉
void gpio_setup_up_down_resistor(GPIO_PinTypeDef gpio, GPIO_PullTypeDef up_down)
资料:B91驱动SDK - Telink Documents