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

专做网站网站备案怎么做超链接

专做网站,网站备案怎么做超链接,网站后期的维护和更新,常州网站建设技术托管STM32HAL 快速入门(七):GPIO 输入之光敏传感器控制蜂鸣器 前言 大家好,这里是 Hello_Embed。上一篇我们用 GPIO 输入模式实现了按键控制 LED,本篇将进阶到 “光敏传感器控制蜂鸣器”—— 通过读取光敏传感器的信号&…

STM32HAL 快速入门(七):GPIO 输入之光敏传感器控制蜂鸣器

前言

大家好,这里是 Hello_Embed。上一篇我们用 GPIO 输入模式实现了按键控制 LED,本篇将进阶到 “光敏传感器控制蜂鸣器”—— 通过读取光敏传感器的信号,实现 “环境变暗时 LED 点亮、蜂鸣器报警” 的联动效果,进一步熟悉 GPIO 输入与输出的结合应用。下一篇我们会引入 “中断” 的概念,让 GPIO 响应更高效。

一、核心组件与原理

本次实战涉及光敏传感器模块、有源蜂鸣器模块,以及 STM32 的 GPIO 引脚,先了解各组件的工作原理。

1. 光敏传感器模块
  • 使用说明
    请添加图片描述
  • 电路图
    请添加图片描述
  • 核心芯片 LM393(比较器)
    • 当 “+” 引脚电压 > “-” 引脚电压时,DO 端输出高电平,模块自带 LED 熄灭;
    • 当 “+” 引脚电压 < “-” 引脚电压时,DO 端输出低电平,模块自带 LED 点亮。
  • 光照与电压的关系
    • 光照增强 → 光敏电阻阻值减小 → “+” 引脚电压降低 → DO 输出高电平(模块 LED 灭);
    • 光照减弱 → 光敏电阻阻值增大 → “+” 引脚电压升高 → DO 输出低电平(模块 LED 亮)。
2. 有源蜂鸣器模块
  • 实物图
    请添加图片描述
  • 原理图
    请添加图片描述
  • 控制逻辑:通过 2 号 I/O 引脚控制,当 I/O 为低电平时,蜂鸣器发声;高电平时,蜂鸣器不发声。
二、硬件连接

按以下方式连接电路(与韦东山课程保持一致):

  • 光敏传感器
    • AO 脚(模拟输出,本篇暂不用)接 PA3;
    • DO 脚(数字输出)接 PB11;
    • 剩余两脚分别接 GND 和 VCC。
  • 蜂鸣器
    • I/O 控制脚接 PA8;
    • 剩余两脚分别接 GND 和 VCC。
  • 系统板 LED:沿用 PC13(已配置为输出)。
    实物连接图
    请添加图片描述
三、CubeMX 配置
  1. 引脚功能配置
    • PB11:GPIO_Input(读取光敏传感器 DO 信号);
    • PA8:GPIO_Output(控制蜂鸣器);
    • PC13:GPIO_Output(控制系统板 LED)。
  2. 生成工程(确保时钟、调试模式等基础配置正确)。
四、代码实现:封装函数与逻辑控制

为使代码更清晰,我们封装三个函数分别处理 “判断环境亮度”“控制蜂鸣器”“控制 LED”,再在主循环中调用。

1. 函数封装(在/* USER CODE BEGIN PV */区域)
/* USER CODE BEGIN PV */
// 判断环境是否变暗(光敏传感器DO输出高电平表示光照强,低电平表示光照弱)
static int Dark(void)
{// PB11为低电平时,返回1(暗);高电平时,返回0(亮)return (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_11) == GPIO_PIN_RESET);
}// 控制蜂鸣器(on=1时发声,on=0时不发声)
static void BeepControl(int on)
{if (on)HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);  // 低电平发声elseHAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);    // 高电平不发声
}// 控制LED(on=1时点亮,on=0时熄灭)
static void LedControl(int on)
{if (on)HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);  // 低电平点亮elseHAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);    // 高电平熄灭
}
/* USER CODE END PV */
2. 主循环逻辑(在while(1)中)
while (1)
{/* USER CODE END WHILE *//* USER CODE BEGIN 3 */if (Dark())  // 环境变暗{BeepControl(1);  // 蜂鸣器发声LedControl(1);   // LED点亮}else  // 环境变亮{BeepControl(0);  // 蜂鸣器不发声LedControl(0);   // LED熄灭}/* USER CODE END 3 */
}
五、实验结果
  • 未遮挡光敏传感器(光照强)
    请添加图片描述
    光敏传感器模块双灯亮(DO 输出低电平),PC13 LED 熄灭,蜂鸣器不发声。
  • 遮挡光敏传感器(光照弱)
    请添加图片描述
    光敏传感器模块一灯灭(DO 输出高电平),PC13 LED 点亮,蜂鸣器鸣叫。
结尾

本文通过 “光敏传感器控制蜂鸣器和 LED”,进一步练习了 GPIO 输入信号的读取与输出控制的结合,核心是通过封装函数使逻辑更清晰。但这种 “循环查询” 的方式效率较低 —— 如果需要同时处理多个任务,持续查询某一引脚会占用大量 CPU 资源。
下一篇笔记,我们将学习 “GPIO 中断”,让引脚状态变化时主动通知 CPU 处理,大幅提升响应效率。Hello_Embed 继续带你探索更高效的 GPIO 应用方式,敬请期待~

http://www.dtcms.com/a/472056.html

相关文章:

  • 【异常处理——上】
  • 莱芜区网站内网安装wordpress
  • 肥乡企业做网站推广百度网盘网页版官网
  • 好看的网站颜色搭配做网站色弱可以吗
  • 网站建设资金报告wordpress 在线人数
  • 新手怎么学代码编程网站关键词优化的步骤和过程
  • 漏惹网站做知科网站
  • 长沙娱乐网站开发免费制作网页网站
  • 昂瑞微:射频前端的“破局者”,迈向中高端模组新纪元
  • 网站建设费会计分录网站建设背景及意义
  • 湘西网站建设花垣做网站用什么语言高效
  • 南京网站设计案例外贸网站设计师
  • 网站设计网资讯类网站开发文档
  • 简单大气的网站模板好听罕见绝不重名的公司名称
  • 一个空间做2个网站吗深圳微信公众号
  • 昆明网站设计制作公司哪家电商平台质量最好
  • 【数据结构与算法-Day 41】分治之王:深入解析稳定高效的归并排序
  • 网站备案接入商变更企业为何要建设网站
  • 多产品的网站怎么做seo七牛wordpress后台无法登录
  • 为什么说“只会写页面的前端,永远成不了高级工程师“?
  • 个人网站可以做淘宝店铺名翠峦网站建设
  • JDBC与MyBatis核心攻略
  • 网站培训费用宿迁网站建设宿迁
  • 做的成功的地方网站中国外贸网站排名
  • 会宁县建设局网站一个thinkphp搭建的微网站
  • 自注意力机制、交叉注意力、向量填充、填充掩码、位置编码、多头注意力、层归一化的基本原理
  • 全网网站建设维护网站建设信用卡分期手续费
  • 网站建设的活动方案apache wordpress 优化
  • 微信 网站应用开发天河区进一步
  • 心理网站建设策划书热门活动页面html