ChibiOS使用hal库之PAL

本文介绍了ChibiOS中的PAL(I/O Ports Abstraction Layer),它是GPIO的硬件抽象层,允许跨平台的IO操作。内容包括如何开启PAL配置、IO配置(静态与动态)以及各种PAL操作,如推挽输出、上拉输入和复用设置的实例说明。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值