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

小白跟做江科大32单片机之光敏传感器控制蜂鸣器

代码部分

1.思路

通过光敏电阻,控制蜂鸣器的发声

2.butter.h代码

#ifndef _BUTTER__H
#define _BUTTER__H

void butter_Init(void);
void butter_on(void);
void butter_off(void);

#endif
 

3.butter.c代码

#include "stm32f10x.h" 
void butter_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);    //开启GPIOB的时钟
                                                            //使用各个外设前必须开启时钟,否则对外设的操作无效
    
    /*GPIO初始化*/
    GPIO_InitTypeDef GPIO_InitStructure;                    //定义结构体变量
    
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;        //GPIO模式,赋值为推挽输出模式
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;    //GPIO引脚,赋值为第1,2号引脚
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //GPIO速度,赋值为50MHz
    
    GPIO_Init(GPIOB, &GPIO_InitStructure);                    //将赋值后的构体变量传递给GPIO_Init函数
                                                            //函数内部会自动根据结构体的参数配置相应寄存器
                                                            //实现GPIOB的初始化
}
void butter_on(void)
{
    GPIO_ResetBits(GPIOB, GPIO_Pin_12);
}

void butter_off(void)
{
    GPIO_SetBits(GPIOB, GPIO_Pin_12);
}

4.guang.h代码

#ifndef _GUANG__H
#define _GUANG__H

void light_Init(void);
uint8_t light_style(void);


#endif
 

5.guang.c代码

#include "stm32f10x.h" 
void light_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);    //开启GPIOB的时钟
                                                            //使用各个外设前必须开启时钟,否则对外设的操作无效
    
    /*GPIO初始化*/
    GPIO_InitTypeDef GPIO_InitStructure;                    //定义结构体变量
    
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;        //GPIO模式,赋值为上拉输出模式
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;    //GPIO引脚,赋值为第1,2号引脚
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;        //GPIO速度,赋值为50MHz
    
    GPIO_Init(GPIOB, &GPIO_InitStructure);                    //将赋值后的构体变量传递给GPIO_Init函数
                                                            //函数内部会自动根据结构体的参数配置相应寄存器
                                                            //实现GPIOB的初始化
}

uint8_t light_style(void)
{
    return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);            //返回PB13输入寄存器的状态
}
 

6.main.c代码

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "butter.h"
#include "guang.h"


int main()
{
   butter_Init();
     light_Init();
    while (1)
    {
        if(light_style()==1)
        {
            butter_on();
        }
        if(light_style()==0)
        {
            butter_off();
        }
        
    }
}

7.电路连接示意图

8.实验结果

STM32光敏传感器控制蜂鸣器试验结果

相关文章:

小白跟做江科大32单片机之光敏传感器控制蜂鸣器

代码部分 1.思路 通过光敏电阻,控制蜂鸣器的发声 2.butter.h代码 #ifndef _BUTTER__H #define _BUTTER__H void butter_Init(void); void butter_on(void); void butter_off(void); #endif 3.butter.c代码 #include "stm32f10x.h" void butter…...

使用 Django Channels 构建实时聊天应用(包含用户认证和消息持久化)

文章目录 准备工作创建 Django 项目创建应用程序配置项目编写 Consumer编写路由创建 URL 路由运行应用用户认证消息持久化显示历史消息结论 Django Channels 是 Django 的一个扩展,允许在 Web 应用中添加实时功能,例如 Websockets、HTTP2 和其他协议。本…...

【Elasticsearch】es基础入门-03.RestClient操作文档

RestClient操作文档 示例&#xff1a; 一.初始化JavaRestClient &#xff08;一&#xff09;引入es的RestHighLevelClient依赖 <!--elasticsearch--> <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest…...

LeetCode - 二分查找(Binary Search)算法集合(Python)[左右边界|旋转数组|双列表]

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/139419653 二分查找&#xff0c;也称为折半查找&#xff0c;是一种在有序数组中查找特定元素的高效算法。其基本原理是将待搜索的区间分成两半&am…...

android睡眠分期图

一、效果图 做医疗类项目&#xff0c;经常会遇到做各种图表&#xff0c;本文做的睡眠分期图。 二、代码 引入用到的库 api joda-time:joda-time:2.10.1 调用代码 /*** 睡眠* 分期*/private SleepChartAdapter mAdapter;private SleepChartAttrs mAttrs;private List<SleepI…...

2023年信息素养大赛小学组C++智能算法复赛真题

今天给大家分享2023年全国青少年信息素养大赛小学组C智能算法挑战赛复赛里面的一套真题&#xff0c;希望有助于大家了解复赛的难度及备考。 其他真题下载&#xff1a;网盘-真题-信息素养大赛...

独立游戏开发的 6 个步骤

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…...

Stable Diffusion AI绘画:从创意词汇到艺术图画的魔法之旅

文章目录 一、Stable Diffusion的工作原理二、从提示词到模型出图的过程三、Stable Diffusion在艺术创作中的应用《Stable Diffusion AI绘画从提示词到模型出图》内容简介作者简介楚天 目录前言/序言本书特色特别提示 获取方式 在科技的飞速发展中&#xff0c;Stable Diffusion…...

使用C++实现高效的套接字连接池

在现代网络应用中&#xff0c;高效管理网络连接是实现高并发和低延迟的重要因素。下面将详细介绍如何使用C实现一个高效的套接字连接池&#xff0c;以便在需要时快速复用连接&#xff0c;从而提高系统性能和资源利用率。 一、什么是连接池&#xff1f; 连接池是一种管理网络连…...

个人百度百科怎么创建

编辑百度词条是一个相对简单的流程&#xff0c;但需要注意的是&#xff0c;并不是所有的词条都可以编辑&#xff0c;部分锁定的词条是无法编辑的&#xff0c;但可以通过官方平台申请解封。以下百科优化网yajje分享是详细的步骤&#xff1a; 注册百度账号 首先&#xff0c;用户…...

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:潍柴雷沃智慧农业无人驾驶

潍柴雷沃智慧农业科技股份有限公司&#xff0c;是潍柴集团重要的战略业务单元&#xff0c;旗下收获机械、拖拉机等业务连续多年保持行业领先&#xff0c;是国内少数可以为现代农业提供全程机械化整体解决方案的品牌之一。潍柴集团完成对潍柴雷沃智慧农业战略重组后&#xff0c;…...

ICPC训练赛补题集

ICPC训练赛补题集 文章目录 ICPC训练赛补题集D - Fast and Fat (负重越野)I-路径规划G. Inscryption(邪恶铭刻)NEW Houses雪中楼(西安交通大学)L.BracketGenerationE - Checksum D - Fast and Fat (负重越野) 原题链接&#xff1a;原题链接 题意&#xff1a;体重大的背体重小的…...

The First项目报告:解读去中心化衍生品交易所AVEO

2023 年12月8日凌晨&#xff0c;Solana 生态 MEV 基础设施开发商 Jito Labs 开放了 JTO 空投申领窗口&#xff0c;JTO 的价格在开盘短暂震荡后迅速攀高&#xff0c;一度触及 4.94 美元。 JTO 是加密社区这两日关注的热门标的&#xff0c;而在这场讨论中&#xff0c;除 Solana …...

Docker 快速更改容器的重启策略(Restart Policies)以及重启策略详解

目录 1. 使用 docker update 命令2. 在启动容器时指定重启策略3. 在 Docker Compose 文件中指定重启策略4. 总结 官方文档&#xff1a;Start containers automatically 1. 使用 docker update 命令 Docker 提供了 docker update 命令&#xff0c;可以在容器运行时更改其重启策…...

docker 启动关闭,设置仓库地址

1. 配置/etc/docker/daemon.json cat /etc/docker/daemon.json# 内容 {"registry-mirrors": ["https://0nth4654.mirror.aliyuncs.com"],"insecure-registries": ["harbor.domain.io"] }2. 配置systemd启动文件 和方法1配置会有冲突&a…...

二叉树的链式结构实现

前言 该篇是在二叉树介绍及堆-CSDN博客的基础上的。该篇会有点抽象大家要自己多画画图自己感受一下。现在我们开始吧&#xff01; 在学习二叉树基本操作时&#xff0c;我们需要先有一个现成的二叉树。来方便我们练习。因为现在我们对二叉树的理解也并不是很深入。在这里创建一个…...

MySQL远程连接

文章目录 MySQL远程连接(Linux)一、更改MySQL配置文件二、进入MySQL修改用户表host值三、使用其他电脑即可远程访问数据库MySQL远程连接(Linux)一、修改my.ini中的配置文件二、修改用户权限三、远程连接 MySQL远程连接(Linux) 以下MySQL远程连接&#xff1a;MySQL部署环境为Ubu…...

奔驰大G升级电动踏板效果

奔驰大G车型的升级旋转电动踏板是一项非常实用的功能&#xff0c;它为驾驶者提供了诸多便利和舒适性。以下是关于这一功能的实用性介绍&#xff1a; 便利的上下车体验&#xff1a;旋转电动踏板可以在车辆停稳的情况下自动伸出&#xff0c;为乘客提供便利的上下车体验。特别是对…...

【xilinx】vivado中的xpm_cdc_gray.tcl的用途

背景 【Xilinx】vivado methodology检查中出现的critical Warning-CSDN博客 接上篇文章&#xff0c;在vivado进行 methodology检查时出现了严重警告&#xff0c;顺着指示查到如下一些问题 TIMING #1 Warning An asynchronous set_clock_groups or a set_false path (see con…...

windows中安装zookeeper

https://zhuanlan.zhihu.com/p/692451839 【zookeeper】在Windows上启动zookeeper_windows启动zk-CSDN博客 Index of /apache/zookeeper/zookeeper-3.9.2 Index of /apache/zookeeper/zookeeper-3.9.2 Zookeeper的应用场景 1、配置管理 2、服务注册中心 3、主从协调 4、…...

Python自动化办公:批量处理Word文档的实用技巧

Python自动化办公&#xff1a;批量处理Word文档的实用技巧 在日常办公中&#xff0c;处理大量Word文档是常见任务&#xff0c;比如批量修改格式、提取内容或生成报告。手动操作不仅耗时&#xff0c;还容易出错。本文将介绍如何使用Python自动化处理Word文档&#xff0c;通过代码…...

Tina Linux嵌入式开发实战:从系统架构到应用移植全解析

1. 项目概述如果你正在接触全志科技的Tina Linux平台&#xff0c;无论是作为软件开发工程师还是技术支持&#xff0c;面对一个全新的嵌入式Linux SDK&#xff0c;最头疼的莫过于如何快速上手&#xff0c;理清从环境搭建到系统定制的整个脉络。这份指南就是为你准备的。Tina Lin…...

华南x79-8d 支持 E5-2680 V3 或者 E5-2680 V4吗

不支持。 华南金牌 X79-8D 主板仅支持 E5-2600系列V1和V2版本的处理器&#xff0c;无法兼容您提到的 E5-2680 V3 或 V4。以下是关于该主板CPU支持情况的详细说明&#xff1a;&#x1f4a1; 为什么不支持 V3/V4&#xff1f;根本原因在于CPU的接口和主板芯片组不匹配&#xff1a;…...

3DS原生GBA硬件实战指南:open_agb_firm深度解析与高效方案

3DS原生GBA硬件实战指南&#xff1a;open_agb_firm深度解析与高效方案 【免费下载链接】open_agb_firm open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware. 项目地址: https://gitcode.com/gh_mirrors/op/open_agb_firm…...

不止于编译:深入OpenWifi驱动与内核的版本绑定机制,及如何管理你的SDRPi镜像

深入OpenWifi驱动与内核的版本绑定机制&#xff1a;SDRPi镜像管理的工程化实践 在嵌入式Linux开发中&#xff0c;内核与驱动的版本一致性往往成为项目长期维护的隐形陷阱。当我们使用SDRPi运行OpenWifi这样的复杂系统时&#xff0c;一个看似简单的内核更新就可能导致整套无线功…...

告别断电重启就丢程序:深入聊聊紫光同创FPGA的Flash固化与CPLD内置eFlash配置差异

紫光同创FPGA与CPLD配置存储机制深度解析&#xff1a;从瞬态下载到永久固化的技术实现 在数字电路设计领域&#xff0c;FPGA和CPLD的可重构特性为硬件开发带来了极大灵活性。然而&#xff0c;这种灵活性背后需要可靠的配置存储机制作为支撑——断电后程序能否自动恢复&#xf…...

为Claude Code配置Taotoken备用API解决封号与Token不足问题

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为Claude Code配置Taotoken备用API解决封号与Token不足问题 许多开发者在日常使用Claude Code时&#xff0c;可能会遇到服务暂时不…...

用Python和OpenCV实现人脸微调:从仿射变换到TPS薄板样条实战

PythonOpenCV人脸微调实战&#xff1a;从仿射变换到TPS薄板样条全解析 当我们需要将一张人脸自然地调整到另一张人脸的形状时&#xff0c;传统仿射变换的局限性就会暴露无遗。本文将从实际应用出发&#xff0c;带你深入理解TPS&#xff08;Thin Plate Spline&#xff09;薄板样…...

Unity热更新原理与方案选型:从AOT限制到HybridCLR实践

1. 热更新不是“打补丁”&#xff0c;而是游戏生命周期的呼吸系统很多人第一次听说Unity热更新&#xff0c;脑子里浮现的是“改个UI文字不用重发包”“修个崩溃不用上架审核”——这没错&#xff0c;但太浅了。我带过三支手游团队&#xff0c;从2017年用AssetBundle硬啃&#x…...

从分钟到秒级:我们用 Fluss + Paimon 替换掉 Kafka + Iceberg,实时宽表终于不用 Flink 死扛了

从分钟到秒级&#xff1a;我们用 Fluss Paimon 替换掉 Kafka Iceberg&#xff0c;实时宽表终于不用 Flink 死扛了 &#x1f4c5; 更新于 2026-05-21 | &#x1f3f7;️ Fluss Paimon 湖流一体 实时数仓 架构升级 摘要&#xff1a;上一代湖仓一体架构中&#xff0c;Kafka …...