当前位置: 首页 > news >正文

风铃网站代做网站开发费 税率

风铃网站代做,网站开发费 税率,简述获得友情链接的途径,耒阳住房与建设局网站本文代码使用 HAL 库。 文章目录前言一、按键原理图二、CubeMX 创建工程三、代码讲解:1. GPIO的输入HAL库函数:2. 消抖:3. 详细代码四,实验现象:总结前言 我们继续讲解 stm32 f103,这篇文章将详细 为大家讲…

本文代码使用 HAL 库。

文章目录

  • 前言
  • 一、按键原理图
  • 二、CubeMX 创建工程
  • 三、代码讲解:
      • 1. GPIO的输入HAL库函数:
      • 2. 消抖:
      • 3. 详细代码
  • 四,实验现象:
  • 总结


前言

我们继续讲解 stm32 f103,这篇文章将详细 为大家讲解 如何 使用 按键点亮 RGB 灯。


一、按键原理图

参考手册:

可以 看到 板子有 4 个按键 :KEY1, KEY2, KEY3, KEY4

对应的 io 端口分别是 :PA0, PG15, PC13, PE3.
在这里插入图片描述

以 KEY1 为例 分析:

该电路接了一个 3V 的电压。
当 按键 按下时,电流 流向按键,然后接地,则 PA0 为 低电平 0。
当按键 松开时,电流流向 PA0 ,则 PA0 是 高电平 1。

所以:
PA0 为 低电平 0 时,按键 按下
PA0 为 高电平1 时,按键 松开

二、CubeMX 创建工程

  1. 选择芯片。
    在这里插入图片描述
  2. 选择 Debug 模式。
    在这里插入图片描述
  3. 选择外部时钟。
    在这里插入图片描述
  4. 配置系统时钟,在 红框中输入 72 ,然后点击 回车 两次,即可配置好。
    在这里插入图片描述
  5. 配置 io 引脚 为 输入引脚。
    在这里插入图片描述在这里插入图片描述
  6. 配置引脚。
    在这里插入图片描述
  7. 设置工程模式和版本。
    在这里插入图片描述
  8. 选取加入.c /.h文件(便于编写代码)。
    在这里插入图片描述
  9. 创建工程。
    在这里插入图片描述

三、代码讲解:

由于我们采用 封装的方法来写程序,所以 我们将 key 程序用一个.c .h文件封装起来,这样便于我们对代码进行修改与移植。

对于 led 的代码可以参考我之前的文章:STM32f103 CubeMX封装 led程序

1. GPIO的输入HAL库函数:

功能:读取一个GPIO引脚的电平。

GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

例如: 读取 K1 的电平,将其重定义。

#define  K1   HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin)

2. 消抖:

在这里插入图片描述

抖动产生原因: 按键按下的 瞬间 引脚的 电平 不是马上 从 高电平 变为 低电平 或者从 低电平 变成 高电平,而是有一个抖动。

解决方法: 可以使用加 延时 判断的办法消除这个抖动。

例如:按下 K1 点亮 led

    #define  K1   HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin)#define Red_ON()  HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET)if(K1 == 0)  {HAL_Delay(100);  //消抖,延时 100 msif(K1 == 0)     //如果按键 真的 按下{Red_ON();  //led 亮}else Red_OFF();   //led 熄灭}

3. 详细代码

key.h 文件:

#include "main.h"#define  K1   HAL_GPIO_ReadPin(K1_GPIO_Port, K1_Pin)  //读取 K1 电平
#define  K2   HAL_GPIO_ReadPin(K2_GPIO_Port, K2_Pin) //读取 K2 电平
#define  K3   HAL_GPIO_ReadPin(K3_GPIO_Port, K3_Pin) //读取 K2 电平
void Key(void);

key.c 文件:

#include "key.h"
#include "led.h"void Key(void)
{if(K1 == 0){HAL_Delay(100);if(K1 == 0)Red_ON();else Red_OFF();}else if(K2 == 0){HAL_Delay(100);if(K2 == 0)Green_ON();else Green_OFF();}else if(K3 == 0){HAL_Delay(100);if(K3 == 0)BlUE_ON();else BlUE_OFF();}
}

四,实验现象:

对于按键 让 RGB 闪烁的实验结果我发在了 B占,有兴趣的可以看看:

实验现象


总结

下一篇 讲 OLED 显示。

http://www.yayakq.cn/news/332644/

相关文章:

  • 西安找工作哪个网站好百度网址链接收录提交入口
  • 内网门户网站建设要求最简单的出入库管理软件
  • 网页设计网站开发教程wordpress 中文字体插件
  • wordpress 两个网站网站制作公司 云南
  • 网站建设捌金手指花总四本地搭建 wordpress
  • 织梦后台生成网站地图网站建设需要了解的
  • 最便宜的低价机票网站建设快速制作效果图软件
  • 网站外链应该怎么做免费做淘宝联盟网站
  • 百度站内搜索域名注册网站搭建
  • 基于jsp的网站开发蚌埠市建设工程质监站网站
  • 哈尔滨专业网站建设哪个好德州建设网站
  • 备案网站名称怎么改国外在线代理服务器免费
  • 外卖做的比较好的网站自己怎么创网站
  • 上海企业建站方案石家庄网站建设与推广
  • 免费的网站软件贵阳网站建设方案报价
  • 学校网站开发工作室社交网站开发用到的技术
  • 公司网站 备案曲靖网站建设dodoco
  • weex做的网站做自媒体常用的图片网站
  • 网站付费推广竞价哈尔滨整站优化
  • 上饶网站建设srsem淮北论坛招聘
  • 合肥网站优化 新浪博客wordpress标签自动生成插件下载
  • 铜仁市网站建设情况网站备案关站
  • 网站的导航栏怎么做域名网站怎么做的
  • 南通高端网站建设公司怎么下载网页上的视频
  • 站点怎么建网页wordpress 轻社交
  • 淘宝客网站备案号网站开发的基本技术
  • 徐州网站关键词排名html样式代码大全
  • 邢台兼职网站有哪些?屏蔽网站接口js广告
  • 哪个免费的网站建设好WordPress颜色筛选插件
  • 做网站的方案图片天津手机网站制作