【嵌入式软件-STM32】STM32外设

embedded/2024/10/21 16:28:12/

目录

LED%E5%92%8C%E8%9C%82%E9%B8%A3%E5%99%A8-toc" style="margin-left:0px;">一、LED蜂鸣器

简介

硬件电路

LED%E7%94%B5%E8%B7%AF-toc" style="margin-left:80px;">GPIO口驱动LED电路

如何选择高低电平驱动

蜂鸣器电路

二、面包板

  金属爪

排列规则

连接关系

例图


LED%E5%92%8C%E8%9C%82%E9%B8%A3%E5%99%A8" style="background-color:transparent;">一、LED蜂鸣器

简介

LED:发光二极管,正向通电点亮,反向通电不亮

有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定

无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音

LED电路符号

左边正极,右边负极

c0da8fbfd0a64a1684673079e400795c.png

LED实物图

(引脚没剪过的LED),长脚正极,短脚负极

LED内部,较小的一半正极,较大的一半负极

363e89dd9be14a06bbfe7196134c5cb7.png

有源蜂鸣器

a8cb77e9df89465db03a6c86b9f4cec0.png

有源蜂鸣器内部电路

b77a346924484f00aed9996bce91c753.png

        1)三极管开关来进行驱动

        2)有源蜂鸣器:VCC和GND分别接上正负极的供电,中间引脚接低电平,蜂鸣器就会响,接高电平,蜂鸣器就关闭(低电平触发)

硬件电路

237ba1257b0b49f7905a7546e6917e60.png

LED%E7%94%B5%E8%B7%AF">GPIO口驱动LED电路

左边两图:使用STM32的GPIO口驱动LED的电路;

e1a0d49ab7244af58e09ecfc7aa01875.png

左上:1)低电平驱动电路LED正极接3.3V,负极通过一个限流电阻接到PA0上;

           2)当PA0输出低电平时,LED两端就会产生电压差,就会形成正向导通的电流(3.3V->PA0),这样LED就会点亮

           当PA0输出高电平时,因为LED两端都是3.3V的电压,不会形成电流,所以高电平LED熄灭

           3)此处的限流电阻(R1)一般都是要接的,一方面可防止LED因为电流过大而烧毁,另一方面它也可以调整LED的亮度,若LED太亮刺眼,可适当增大限流电阻的阻值

左下:1)高电平驱动的电路LED负极接GND,正极通过一个限流电阻接到PA0上

           2)这时为高电平点亮低电平熄

如何选择高低电平驱动

看IO口高低电平的驱动能力如何;GPIO在推挽输出模式下,高低电平均有比较强的驱动能力,两种接法均可;

但在单片机的电路里,一般倾向使用第一种接法,因为很多单片机或芯片都使用了高电平弱驱动,低电平强驱动的规则,这样可以一定程度上避免高低电平打架

如果高电平驱动能力弱,就不能使用第二种连接方法

蜂鸣器电路

952dc19e5203448eae9185c2552e9655.png

右边两图:蜂鸣器电路-使用了三极管开关(最简单的驱动电路)的驱动方案

对功率稍微大一点的,直接用IO口驱动会导致STM32负担过重,此时就可以用一个三极管驱动电路来完成驱动的任务;

右上为PNP三极管的驱动电路

三极管左边为基极,带箭头为发射极,剩下的为集电极

左边的基极给低电平,三极管就会导通,通过3.3V和GND,就可以给蜂鸣器提供驱动电流

基极给高电平,三极管截止蜂鸣器就没有电流

右下为NPN三极管的驱动电路

同样,左边为基极,带箭头的为发射极,剩下的是集电极,驱动逻辑与上面相反

基极给高电平导通,给低电平断开

tips:

PNP的三极管最好接在上边,NPN的三极管最好接在下边

因为三极管的通断,是需要在发射极和基极直接产生一定的开启电压,若把负载接在发射极这边,可能会导致三极管不能开启

二、面包板

  金属爪

        排列规则

        中间的金属爪竖着放,上下四排是连在一起的四个整体金属爪;

     

        连接关系

        对应该面包板的孔的连接关系,中间竖着5个孔内部是连接在一起,将元件插在一纵排的不同孔位时,内部的金属爪就实现了线路的连接

        上下四排孔整体是连在一起的,这四排是用于供电的:

        第一排是正极,第二排是负极,第三排正极,第四排负极

        如果需要供电,从上下的孔位中,用跳线引出来即可

        

        供电的引脚视情况而定,不是每个面包板都是一整排都是连接的,所以如果有断开的话,中间需要用跳线,把两边连接起来

       

        例图

        


http://www.ppmy.cn/embedded/129314.html

相关文章

网络安全基础知识点_网络安全知识基础知识篇

文章目录 一、网络安全概述1.1 定义1.2 信息安全特性1.3 网络安全的威胁1.4 网络安全的特征 二、入侵方式2.1 黑客2.1.1 入侵方法2.1.2 系统的威胁2.2 IP欺骗与防范2.2.1 TCP等IP欺骗基础知识2.2.2 IP欺骗可行的原因2.2.3 IP欺骗过程2.2.4 IP欺骗原理2.2.5 IP欺骗防范2.3 Sniff…

现今 CSS3 最强二维布局系统 Grid 网格布局

深入学习 CSS3 目前最强大的布局系统 Grid 网格布局 Grid 网格布局的基本认识 Grid 网格布局: Grid 布局是一个基于网格的二位布局系统,是目前 CSS 最强的布局系统,它可以同时对列和行进行处理(它将网页划分成一个个网格,可以任…

【SpringCloud】04-Gateway网关登录校验

1. 网关请求处理流程 2. 网关过滤器 3. 网关实现登录校验 Component // 参数构造器 RequiredArgsConstructor public class AuthGlobalFilter implements GlobalFilter, Ordered {private final AuthProperties authProperties;private final JwtTool jwtTool;private final A…

基于Springboot+Vue的高校实验室智能管理系统(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 这个系…

HDU Problem A

思路&#xff1a;这题只需要预处理前缀乘再加上逆元就可以轻松解决。 代码如下&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long const int mod9973; int sum[100005]{1}; int ksm(int x,int y){int ans1;while(y){if(y&1) ansans…

期货交易程序化,哪些API可供选择及如何使用?

炒股自动化&#xff1a;申请官方API接口&#xff0c;散户也可以 python炒股自动化&#xff08;0&#xff09;&#xff0c;申请券商API接口 python炒股自动化&#xff08;1&#xff09;&#xff0c;量化交易接口区别 Python炒股自动化&#xff08;2&#xff09;&#xff1a;获取…

鹏哥C语言83-85---结构体声明+初始化+访问+传参

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> //---------------------------------------------------------------------------------------------------BIT-7-结构体 1.结构体的声明 1.1结构的基础知识 1.2结构的声明 …

基于springboot vue的音乐播放系统设计与实现

博主介绍&#xff1a;专注于Java&#xff08;springboot ssm 等开发框架&#xff09; vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…