2363|2

142

帖子

4

TA的资源

一粒金砂(高级)

楼主
 

【Microchip WBZ451 Curiosity】5.GPIO和按钮 [复制链接]

  1. 前言
    本次来个较为简单的IO口输入输出操作
  2. 准备
    硬件:开发板
    本次使用GPIO输入状态改变控制LED的亮灭,从原理图中可以找到按钮就在PB4

    根据按钮的电路可知,其为外部上拉,按下时IO口为低电平。

    而LED的控制引脚有如下几个,分别是PB0,PB3和PB5,以及PB7,我们就选择以demo code的PB3的绿色等为例。


    软件:MPLAB X,MCC,GPIO demo code
  3. 程序
    通过File->Open Project...打开下面路径下的demo code
  4. 代码分析
    首先是main文件下main函数,做了SYS init的初始化

    系统初始化函数

    GPIO初始化,其中 GPIOB_REGS->GPIO_TRISCLR = 0x8U; 语句将PB3设置为输出,作为绿色LED的输出控制,而GPIOB_REGS->GPIO_ANSELCLR = 0x18U;则将PB3和PB4配置为数字模式

    也可以使用如下按钮和LED的IO宏定义进行IO口的初始化和控制,如LED_OutputEnable()进行IO口配置为输出,而LED_Set()和LED_Clear()则为输出高电平和输出低电平。而按钮的输入配置可以使用SWITCH_InputEnable(),按钮的电平值则可以通过SWITCH_PIN直接获取

    再回到main函数,可以看到通过 if(SWITCH_Get() == SWITCH_PRESSED_STATE) 读取按钮状态,根据SWITCH_PRESSED_STATE的定义,其为0,也就是低电平时灯亮,低电平即为按钮按下装状态。然后根据状态输出LED_Set或者LED_Clear,即亮和灭状态。
  5. 程序修改

如果想改成控制红色LED,只要改一下IO引脚号为0即可,即PB0

再把GPIO_Inintialize函数和做如下更改

编译下载后即可按钮控制红色LED了。

查看本帖全部内容,请登录或者注册
此帖出自无线连接论坛

最新回复

确实是简单的IO口输入输出操作   详情 回复 发表于 2023-8-23 07:25
点赞 关注
 

回复
举报

7032

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

确实是简单的IO口输入输出操作

此帖出自无线连接论坛

点评

见笑啦  详情 回复 发表于 2023-8-23 13:42
 
 

回复

142

帖子

4

TA的资源

一粒金砂(高级)

板凳
 
Jacktang 发表于 2023-8-23 07:25 确实是简单的IO口输入输出操作

见笑啦

此帖出自无线连接论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表