CH579M开发笔记05——GPIO输出点亮LED
专栏目录:CH579M开发笔记——目录
功能概述
芯片提供了 2 组 GPIO 端口 PA 和 PB,共 40 个通用输入输出引脚,部分引脚具有中断、复用及映 射功能。
每个GPIO端口有一个32位方向配置寄存器R32_Px_DIR,一个32位引脚输入寄存器R32_Px_PIN,一个 32 位数据输出寄存器 R32_Px_OUT,一个 32 位数据复位寄存器 R32_Px_CLR,一个 32 位上拉电阻 配置寄存器 R32_Px_PU,一个 32 位下拉电阻/驱动能力配置寄存器R32_Px_PD_DRV。
PA 端口中,PA[0]~PA[15]位有效,对应芯片上 16 个 GPIO 引脚;PB 端口中,PB[0]~PB[23]位 有效,对应芯片上 24 个 GPIO 引脚;其中 32 个 I/O 管脚 PA[0]~PA[15]、PB[0]~PB[15]具有中断功能,并可实现睡眠唤醒功能。 每个 I/O 端口位可以自由编程,但是 I/O 端口寄存器必须按 8 位、16 位或者 32 位字访问。如果引脚的复用功能没有开启,则默认作为通用 I/O 口使用。

端口复用等更多信息,可以参考数据手册。本文主要关注GPIO的推挽输出功能。

GPIO和引脚功能对应关系如下:PB3(BEEP)、PB8(LED2)、PB9(LED1),具体位置如下图所示↓。

核心代码
查看代码
//分别初始化单个引脚
GPIOB_SetBits(GPIO_Pin_3);//设定初始电平
GPIOB_ModeCfg(GPIO_Pin_3, GPIO_ModeOut_PP_5mA);//配置GPIO模式
GPIOB_SetBits(GPIO_Pin_8);//设定初始电平
GPIOB_ModeCfg(GPIO_Pin_8, GPIO_ModeOut_PP_5mA);//配置GPIO模式
GPIOB_SetBits(GPIO_Pin_9);//设定初始电平
GPIOB_ModeCfg(GPIO_Pin_9, GPIO_ModeOut_PP_5mA);//配置GPIO模式
//也可以同时初始化多个引脚
GPIOB_SetBits(GPIO_Pin_3|GPIO_Pin_8|GPIO_Pin_9);//设定初始电平
GPIOB_ModeCfg(GPIO_Pin_3|GPIO_Pin_8|GPIO_Pin_9, GPIO_ModeOut_PP_5mA);//配置GPIO模式
功能验证
使用烧录工具将编译后的hex文件写入开发板后,开发板LED1、LED2闪烁,伴随蜂鸣器滴滴报警。
注意事项
1、GPIO的推挽输出模式可以设置输出的电流最大值,分别是:GPIO_ModeOut_PP_5mA、GPIO_ModeOut_PP_20mA;一般情况下5mA即可满足使用,如果使用GPIO直接驱动蜂鸣器,则可以配置为GPIO_ModeOut_PP_20mA模式。(不推荐这样使用)

浙公网安备 33010602011771号