打印
[STM32C0]

【STM32C092RC 测评】LED和按钮验证输入输出

[复制链接]
85|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
      LED和按钮验证输入输出实际上就是GPIO的输入输出的功能实现,这里我们使用两个LED作为输出,一个用户按键作为输入(通过我不中断的方式实现)。我们需要考虑的内容主要是原理图中的硬件配置是怎样的,初始化代码如何实现,软件上面需要如何编写,接下来我们就是通过这样的流程实现基本基本的目标功能。
一、硬件原理
      先看一下原理图方面:
      按键:
      这里需要注意按键按下的时候对应引脚是低电平的,R34并没有焊接,也就是没有进行外部上拉操作,我们需要再配置的时候实现内部上拉;
      LED:
      两个LED的控制分别通过两个不同的引脚实现的控制,控制的电平还不同,这里我们要注意一下。
二、STM32CubeMX配置
      接下来我们看一下对应引脚的配置。
      按键需要配置为外部中断模式:
      同时需要配置为下降沿触发,内部上拉,开启对应的中断:
      LED需要配置为输出模式:
      为了控制的一致性需要根据原理图给与对应的初始电平状态。
三、软件设计
      接下来就是软件上的功能实现了,主要的内容就是需要我们重写外部中断的回调函数了,中断中可以看到已经处理:
      在main.c中重写回调函数,回调函数一般都是弱定义的,根据具体的触发方式进行,本次是通过下降沿触发:
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
     if(GPIO_Pin == GPIO_PIN_13)
     {
            HAL_GPIO_TogglePin(LD1_GPIO_PORT, LD1_Pin);
            HAL_GPIO_TogglePin(LD2_GPIO_PORT, LD2_PIN);
     }
}

四、效果展示
      本次实现的功能就是通过外部中断采集的按键进行两个LED的外部翻转,效果如下:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:硬件工程师
简介:有着多年硬件开发经验的专业人员,专注于医疗电子领域,热衷于对新鲜事物的探索,喜欢DIY!

452

主题

2306

帖子

11

粉丝