思澈科技软件开发工具包  2.20
PINMUX

HAL PINMUX提供抽象的软件接口操作硬件PINMUX模块,设置pin的功能和上下拉属性等。 芯片有两个PINMUX实例,HPSYS域的PINMUX1(hwp_pinmux1)和LPSYS域的PINMUX2(hwp_pinmux2)。 PINMUX1的pin列表见 pin_pad_hcpu, pin可用功能参考 pin_pad_func_hcpu ,类似的,PINMUX2的pin列表见 pin_pad_lcpu , pin功能定义 见 pin_pad_func_lcpu

pinmux的功能从56x的芯片开始(不包括55x,58x)任意一个GPIO都可以作为当前系统任意一个I2C/UART/PWM的IO脚。

详细的API说明参考 PINMUX.

GPIO和pinmux模块的区别

物理上,GPIO需要通过pinmux模块才能和外界连接,如图:

Figure 1: pinmux模块和GPIO模块的关系

使用HAL PINMUX

void pin_func_set_example(void)
{
/* set HCPU PA10 and PA14 for I2C */
/* set LCPU PB12 and PB14 for UART4 */
}
PAD_PA14
@ PAD_PA14
Definition: bf0_pin_const.h:1085
PAD_PB12
@ PAD_PB12
Definition: bf0_pin_const.h:1250
PAD_PA10
@ PAD_PA10
Definition: bf0_pin_const.h:1077
I2C1_SCL
@ I2C1_SCL
Definition: bf0_pin_const.h:482
I2C1_SDA
@ I2C1_SDA
Definition: bf0_pin_const.h:484
USART4_TXD
@ USART4_TXD
Definition: bf0_pin_const.h:468
PIN_PULLUP
#define PIN_PULLUP
Definition: bf0_hal_pinmux.h:77
PAD_PB14
@ PAD_PB14
Definition: bf0_pin_const.h:1254
USART4_RXD
@ USART4_RXD
Definition: bf0_pin_const.h:466
HAL_PIN_Set
int HAL_PIN_Set(int pad, pin_function func, int flags, int hcpu)
Set pin function.