ChibiOS使用hal库之PAL

PAL全称是I/O Ports Abstraction Layer,即“IO硬件抽象层”。ChibiOS通过对GPIO进行抽象,使得不同的平台不同的MCU能够用同样风格的代码进行IO的操作,本节我们来简单介绍一下PAL的使用

一、开启PAL配置

一般来说,大部分的ChibiOS工程都会用到GPIO,所以自然会将PAL的配置开启。我们打开halconf.h文件,确认一下HAL_USE_PAL这个宏是否为TRUE,如果不是的话,需要修改为TRUE来支持PAL操作。

二、IO配置

IO的配置有两种,一种是静态的,也就是在板级定义的时候进行定义,我们可以参考I2C那个章节的介绍,来进行“静态”的GPIO配置;另外一种是动态的,通过我们app里面的代码进行动态的配置或者修改,这里我们引出一个函数:

#define palSetPadMode(port, pad, mode)         palSetGroupMode(port, PAL_PORT_BIT(pad), 0U, mode)

可以看到,这事实上是一个宏函数,通过定义port(端口)、pad(端口子序号)、mode(端口模式)来配置端口。这里以STM32F4为例,port可以是GPIOA、GPIOB、GPIOC……这些定义,pad可以是0-15,mode相对多一些,有如下的宏:
PAL_MODE_RESET                            //未配置
PAL_MODE_UNCONNECTED            //未连接
PAL_MODE_INPUT

你可能感兴趣的:(ChibiOS,ARM,RTOS)