CH582M入门:GPIO配置详解
创作时间:
作者:
@小白创作中心
CH582M入门:GPIO配置详解
引用
CSDN
1.
https://blog.csdn.net/sinat_58149788/article/details/130597250
本文将介绍CH582M微控制器的GPIO配置方法,包括输入输出模式的配置以及实际应用案例。通过点亮板载LED灯的实例,帮助读者快速入门CH582M的GPIO开发。
一、了解CH582M资源
CH582M是一款功能强大的微控制器,具有充足的Flash和SRAM资源,丰富的外设接口,并支持蓝牙功能。正点原子的手持电烙铁就是使用CH5x系列MCU作为主控,而博主也曾使用STM32F103C8T6开发过类似项目。
二、认识GPIO及配置
1.认识GPIO
GPIO(General Purpose Input Output)即通用输入输出,可以通过配置不同的模式来实现不同的功能。对于不了解GPIO的读者,可以参考STC32G的相关资料。
不同模式的配置代码如下:
/*********************************************************************
* @fn GPIOB_ModeCfg
*
* @brief GPIOB端口引脚模式配置
*
* @param pin - PB0-PB23
* @param mode - 输入输出类型
*
* @return none
*/
void GPIOB_ModeCfg(uint32_t pin, GPIOModeTypeDef mode)
{
switch(mode)
{
case GPIO_ModeIN_Floating: //浮空输入模式
R32_PB_PD_DRV &= ~pin;
R32_PB_PU &= ~pin;
R32_PB_DIR &= ~pin;
break;
case GPIO_ModeIN_PU: //上拉输入模式
R32_PB_PD_DRV &= ~pin;
R32_PB_PU |= pin;
R32_PB_DIR &= ~pin;
break;
case GPIO_ModeIN_PD: //下拉输入模式
R32_PB_PD_DRV |= pin;
R32_PB_PU &= ~pin;
R32_PB_DIR &= ~pin;
break;
case GPIO_ModeOut_PP_5mA: //5ma推挽输出模式
R32_PB_PD_DRV &= ~pin;
R32_PB_DIR |= pin;
break;
case GPIO_ModeOut_PP_20mA://20ma强推挽输出模式
R32_PB_PD_DRV |= pin;
R32_PB_DIR |= pin;
break;
default:
break;
}
}
2.GPIO配置(输出模式,点灯大师)
这里将介绍如何点亮板载的PB4 LED灯。
首先需要打开一个工程文件,然后配置PB4引脚为20mA强推挽输出模式。代码如下:
#include "CH58x_common.h"
//#include "bmp.h"
//#include "oled.h"
/*********************************************************************
* @fn main
*
* @brief 主函数
*
* @return none
*/
//u8 Image_BW[4736];
void main()
{
//这里是配置的是MCU的时钟,这里配置为60MHZ,
SetSysClock(CLK_SOURCE_PLL_60MHz);
//配置GPIOB的Pin_4引脚为20mA强推挽输出模式
GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_20mA);
while(1)
{
GPIOB_SetBits(GPIO_Pin_4); //设置PB4为高电平
DelayMs(1000); //ms延时
GPIOB_ResetBits(GPIO_Pin_4); //设置PB4为低电平
DelayMs(1000); //ms延时
}
}
编译成功后,使用沁恒的烧录软件WCHISPTool_CH57x-58x进行下载。具体步骤如下:
- 断电并按住板上的BOOT按钮
- 上电后选择设备
- 选择编译生成的hex文件
- 点击下载
2.GPIO配置(输入模式,点灯大师)
接下来介绍如何使用GPIO的输入模式控制LED灯。代码如下:
#include "CH58x_common.h"
#include "bmp.h"
#include "oled.h"
/*********************************************************************
* @fn main
*
* @brief 主函数
*
* @return none
*/
u8 Image_BW[4736];
void main()
{
SetSysClock(CLK_SOURCE_PLL_60MHz);
GPIOB_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_20mA);
GPIOB_ModeCfg(GPIO_Pin_3,GPIO_ModeIN_PU); //上拉输入模式
while(1)
{
if(GPIOB_ReadPortPin(GPIO_Pin_3) == 1){
GPIOB_SetBits(GPIO_Pin_4);
}else{
GPIOB_ResetBits(GPIO_Pin_4);
}
// GPIOB_SetBits(GPIO_Pin_4);
// DelayMs(1000);
// GPIOB_ResetBits(GPIO_Pin_4);
// DelayMs(1000);
}
}
总结
本文介绍了CH582M微控制器的GPIO配置方法,包括输入输出模式的配置以及实际应用案例。通过点亮板载LED灯的实例,帮助读者快速入门CH582M的GPIO开发。需要注意的是,CH582M的ADC使用的是浮空输入模式,且没有模拟输入模式。
热门推荐
2025年会策划指南:18个创意主题+20个趣味游戏,让年会不再无聊!
洛杉矶山火致1.8万人撤离,气候异常与规划不当致灾情加剧
洛杉矶山火后重建转向绿色建筑,智能家居提升安全
罕见山火席卷洛杉矶,暴露气候与规划双重危机
青海孟达保护区野牦牛攻击事件引发关注,专家:可能是放生家牦牛恢复野性所致
青海孟达保护区野牦牛攻击登山队,专家提醒:避免接触确保安全
指纹识别安全大揭秘:如何选型最靠谱?
汽车改装哪些不需要备案
三项智能网联汽车强制性国家标准正式发布(附图解)
用碘伏洗发能控油、去屑?专家:有一定杀菌作用,但不可长期使用
公安部提醒:连接不明Wi-Fi存四大风险,需谨慎防范
海南、毕棚沟自驾游:热带度假与藏羌文化之旅
详述:十二生肖的文化意义
文武双全得天下,一马当前龙虎斗指什么生肖,释义成语解释
金龙王1980年1元纸币收藏价值飙升🔥
科学证实:泡脚改善心血管健康,这样做效果最好
岱山自驾游打卡中国海岬公园,绝美风光等你来撩!
梅林引擎:英国著名航空发动机的技术解析
SpaceX重大突破:成功回收超重型助推器,航天回收技术再创新高!
人类商业太空行走意义何在
70岁以上老人驾车新规,你准备好了吗?
70岁后如何保持心理健康?这些方法很有效
成都蓉政通APP实现24小时政务办理,多部门业务一网通办
双驱变桨技术破垄断,天津理工斩获国家科技进步一等奖
大模型在安全领域的十大应用场景及实现路径
用户体验的体现与思维框架
掌握鲁班七号技能与装备,提升《王者荣耀》射手英雄的战斗力
按摩关元穴喝菊花茶,中医教你减缓胡子生长
蛋白质、维生素B族、锌、铁:促进胡子生长的关键营养
马偕医院专家推荐:男性补充叶酸最佳食物