stm32第六天继电器

一:继电器

1.继电器的工作原理
继电器是一个电控开关,工作原理基于电磁感应,继电器包括一个电磁线圈和一组触点。常用于控制高电流或高电压的电路,例如自动控制原理,电力系统和自动化设备中,由于可靠性和电气隔离的特性可以实现小电流实现大电流,通过小电流控制线圈产生磁场驱动触点动作,实现对大电流/高电压电路的通断控制。继电器在各种应用中都有广泛的用途。

 2.继电器的引脚说明
1.VCC(+):供电正极,连接此引脚到电源,以提供继电器所需的电流(判断是3.3v还是5v)
2.GND():地,连接此引脚到电源的负极或者地。
3.IN:控制输入信号,通常用于连接控制信号,当该信号变化,继电器切换状态。(判断是低电平导通还是高电平导通)
4.COM (common):公共端,通常是中间的触点,与常开或常闭触点相连。
5.NO(Normally Open):常开接口,继电器吸合前悬空,吸合后于COM连接。
6.NC(Normally Closed):常闭接口,继电器吸合前与COM连接,吸合后悬空。

3:单片机控制继电器软件开发流程
· 初始化系统
。 初始化继电器IN引脚对应的GPIO外设时钟
。初始化继电器IN的引脚
·输出电平控制继电器开和关

1:relay.c工程

#include "relay.h"#include "stm32f10x.h"void Relay_Init(void)//继电器的初始化函数
{//有两个步骤:1:初始化继电器外设 2:初始化继电器时钟GPIO_InitTypeDef Relay_Initstruct;//初始化继电器结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//打开APB2总线下GPIOA的时钟Relay_Initstruct.GPIO_Pin=GPIO_Pin_0;//配置A0引脚Relay_Initstruct.GPIO_Speed=GPIO_Speed_10MHz;//配置A0引脚传输速度为10MHZRelay_Initstruct.GPIO_Mode=GPIO_Mode_Out_PP;//配置A0引脚输出模式为推挽输出GPIO_Init(GPIOA, &Relay_Initstruct);//初始化GPIOA0的结构体}

2:relay.h工程

void Relay_Init(void);//声明函数

3:main.c工程

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "Bear.h"
#include "key.h"
#include "relay.h"void delay(uint16_t time)//延时1ms  软件延时粗延时
{uint16_t i=0;while(time --){i=12000;while(i --);}}int  main()
{LED_Init();Bear_Init();//初始化蜂鸣器的引脚GPIO A3Key_Init();//初始化按键的时钟和引脚配置GPIO_SetBits(GPIOA, GPIO_Pin_1); //初始化灯为灭Relay_Init();//初始化继电器的时钟和引脚配置GPIO_SetBits(GPIOA, GPIO_Pin_0);//初始化GPIOA为高电平为绿灯灭while(1){GPIO_ResetBits(GPIOA, GPIO_Pin_0);//A0输出低电平绿灯亮delay(1000);//延时1秒钟GPIO_SetBits(GPIOA, GPIO_Pin_0);//A0输出高电平绿灯灭delay(1000);//延时1秒钟}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/73782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue渲染函数 - render 函数

文章目录 Vue渲染函数 - render 函数1. 什么是 render 函数2、页面展示过程3、render 函数的参数4. 如何使用(1)基本渲染(2)传递属性和事件(3)条件渲染 5. render 函数的实际使用6.View Design 组件中的使用…

单片机自学总结

自从工作以来,一直努力耕耘单片机,至今,颇有收获。从51单片机,PIC单片机,直到STM32,以及RTOS和Linux,几乎天天在搞:51单片机,STM8S207单片机,PY32F003单片机,…

go回调函数的使用

在Go语言中,回调函数可以有参数,也可以没有参数。它们的定义和使用方式略有不同,但本质上都是将函数作为参数传递给另一个函数,并在适当的时候调用它。以下是带参数和不带参数的回调函数的示例和说明。 1. 不带参数的回调函数 不…

在 Ubuntu 中配置 NFS 共享服务的完整指南

前言 网络文件系统(NFS)作为 Linux 系统间实现文件共享的标准协议,在分布式计算和容器化部署场景中具有重要作用。本文将详细演示如何在 Ubuntu 系统上配置 NFS 服务端与客户端,并实现可靠的持久化挂载。 一、环境准备 系统要求…

TypeScript Symbols 深度解析:在 Vue3 中的高级应用实践

一、Symbols 核心特性解析 1.1 什么是 Symbol? Symbol 是 ES6 引入的原始数据类型,表示唯一且不可变的值,主要解决对象属性名冲突问题。在 TypeScript 中,我们通过 symbol 类型获得完整的类型支持: const SERIAL_KE…

无需刷机、root,畅享原生安卓的丝滑体验。

Apex Launcher 是一款历史悠久的 Android 桌面启动器,诞生于 Android 系统早期(Android 4.0 时代)。当时,Android 系统的默认界面被认为较为简陋,无法满足一些追求个性化和高效操作的用户需求。因此,许多开…

Visual Studio Code安装配置优化全攻略:打造高效开发环境

目录 一、背景与意义 二、安装与配置基础 2.1 下载与安装 2.2 核心配置目录 三、深度优化配置指南 3.1 主题与界面优化 3.2 必装效率插件(精选TOP10) 3.3 性能优化设置 四、实战案例:前端开发环境配置 4.1 项目初始化 4.2 调试配置…

味觉传送器E-Taste:开启虚拟世界的味觉之门

味觉传送器E-Taste:开启虚拟世界的味觉之门 一、发明背景与动机 随着虚拟现实(VR)和增强现实(AR)技术的飞速发展,人们在虚拟世界中的沉浸感不断提升,视觉和听觉体验已经取得了显著的突破。然而…

判断质数与合数

判断质数与合数的逻辑很相似,都是判断一个属除了1和它本身,能不能被其他数整除。 其他数包括质数与合数,合数能表示能质数的乘积,因此问题就转化为:一个数能不能被除了1和它本身之外的其他质数整除。 质数2&#xff…

在Spring Boot项目中接入DeepSeek深度求索,感觉笨笨的呢

文章目录 引言1. 什么是DeepSeek?2. 准备工作2.1 注册DeepSeek账号 3.实战演示3.1 application增加DS配置3.2 编写service3.3 编写controller3.4 编写前端界面chat.html3.5 测试 总结 引言 在当今快速发展的数据驱动时代,企业越来越重视数据的价值。为了…

Cursor在内网环境配置自定义DeepSeek API

关键字 Cursor、DeepSeek、API配置、内网代理、HTTP/2 背景环境 使用Cursor集成环境开发程序。但是我使用公司的内网并不能使用cursor自带的模型,于是我就想使用DeepSeek官方的API服务。 环境:Windows 11系统 解决过程 网络检测 首先进行环境检测&am…

RabbitMQ 集群降配

这里写自定义目录标题 摘要检查状态1. 检查 RabbitMQ 服务状态2. 检查 RabbitMQ 端口监听3. 检查 RabbitMQ 管理插件是否启用4. 检查开机自启状态5. 确认集群高可用性6. 检查使用该集群的服务是否做了断开重连 实操1. 负载均衡配置2. 逐个节点降配(滚动操作&#xf…

设计模式之外观模式:原理、实现与应用

引言 外观模式(Facade Pattern)是一种结构型设计模式,它通过提供一个统一的接口来简化复杂系统的使用。外观模式隐藏了系统的复杂性,使得客户端可以通过一个简单的接口与系统交互。本文将深入探讨外观模式的原理、实现方式以及实…

进行交通流预测,使用KAN+Transformer模型

理论基础 KAN(Knowledge Augmented Network) KAN 是一种知识增强网络,其核心思想是将先验知识融入到神经网络中,以此提升模型的性能与泛化能力。在交通流预测领域,先验知识可以是交通规则、历史交通模式等。通过把这…

TF中 Arg 节点

TF中 Arg 节点 在 TensorFlow 的计算图中,_Arg 节点(Argument Node)表示函数的输入参数,是计算图中负责接收外部输入数据的节点。它的名字来源于“Argument”(参数),直接对应函数调用时传入的张…

Educational Codeforces Round 176 (Rated for Div. 2)

A.To Zero 签到题 void solve() { int n,k;cin>>n>>k;int k2k/2*2;int k1(k2<k)?k:k-1;int cnt0;if(n%21){n-k1;cnt;cnt(n/k2)(n%k2!0);}else {cnt(n/k2)(n%k2!0);}cout<<cnt<<endl;}B.Array Recoloring 手推一下可以发现&#xff0c;答案其实就…

Kubernetes的Service详解

一、Service介绍 在 kubernetes 中&#xff0c; pod 是应用程序的载体&#xff0c;我们可以通过 pod 的 ip 来访问应用程序&#xff0c;但是 pod 的 ip 地址不是固定的&#xff0c;这也就意味着不方便直接采用pod 的 ip 对服务进行访问。 为了解决这个问题&#xff0c;kuberne…

基于Nvidia Jetson Nano边缘计算设备使用TensorRT部署YOLOv8模型实现目标检测推理

0、背景 最近拿到一台边缘计算设备&#xff0c;在部署YOLO模型的过程中遇到一些问题&#xff0c;特此记录。 设备介绍信息&#xff1a;NVIDIA Jetson Orin Nano T201Developer Kit 开发套件 开发者套件&#xff1a;Jetson Orin Nano T201 8GB开发套件 使用指南文档&#x…

让人感到疑惑的const

const 关键字在不同的编程语言中有着不同的含义和限制&#xff0c;但通常它被用来声明一个常量或只读变量。然而&#xff0c;在 JavaScript 中&#xff0c;const 的行为有时可能会让人感到困惑&#xff0c;因为它并不总是意味着“不可变”&#xff08;immutable&#xff09;。让…

Python 列表全面解析

关于Python列表的详细教程&#xff0c;涵盖增删改查、切片、列表推导式及核心方法 一、 列表基础 1.1 创建列表 列表是Python中最常用的数据结构之一&#xff0c;支持动态存储多种类型的元素。 # 空列表 empty_list []# 初始化列表 numbers [1, 2, 3, 4] fruits ["a…