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

小实验--继电器定时开闭

继电器定时开闭

1.实验目的

继电器500ms闭合,再500ms断开,如此循环。

2.硬件清单

  • 继电器
  • STM32开发版
  • ST-Link

3.硬件连接

STM32继电器
PB7I/O
3V3VCC
GNDGND

4.代码

小技巧:给保存继电器代码的文件夹命名时,一般不命名继电器的英文名字,而是命名为继电器要驱动的电路名字,比如要驱动高功率喇叭,就命名为喇叭了英文名字。

4.1alarm.c

#include "alarm.h"
#include "sys.h"void alarm_init(void)
{__HAL_RCC_GPIOB_CLK_ENABLE();                   //使能GPIOB时钟GPIO_InitTypeDef gpio_initstruct;               //初始化GPIO函数中的结构体参数    gpio_initstruct.Mode =GPIO_MODE_OUTPUT_PP ;     //推挽输出gpio_initstruct.Pin = GPIO_PIN_7;               //引脚7gpio_initstruct.Pull = GPIO_PULLUP;             //上拉gpio_initstruct.Speed = GPIO_SPEED_FREQ_HIGH;   //高速HAL_GPIO_Init(GPIOB,&gpio_initstruct);alarm_off();
}
//打开继电器函数
void alarm_on(void)
{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);     //拉低PB7引脚打开继电器
}
//关闭继电器函数
void alarm_off(void)
{HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);       //拉高PB7引脚关闭继电器
}

4.2alarm.h

#ifndef __ALARM_H__
#define __ALARM_H__void alarm_init(void);
void alarm_on(void);
void alarm_off(void);#endif

4.3main.c

#include "sys.h"
#include "uart1.h"
#include "delay.h"
#include "alarm.h"int main(void)
{HAL_Init();                         /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */alarm_init();while(1){ alarm_on();delay_ms(500);alarm_off();delay_ms(500);}
}

这个代码和点亮LED的代码一模一样,就是修改了引脚,详见STM32小实验1–点亮led

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

相关文章:

  • TrustZone技术详解————这篇是AI写的包括图
  • 贝叶斯算法中的参数调优
  • RK3568下用 Qt Charts 实现曲线数据展示
  • python---getsizeof和asizeof的区别
  • 17.Linux :selinux
  • LMS/NLMS最小均值算法:双麦克风降噪
  • CentOS8.5安装19c单机告警及处理
  • 碳纳米管的原子精度制造——展望
  • 福彩双色球第2025090期篮球号码分析
  • docker启动出现Error response from daemon: Container的问题【已解决】
  • 容器化运维工具(2)Kubernetes 详细教程(含图解)
  • 开发避坑指南(18): SpringBoot环境变量配置错误:占位符解析失败解决方案
  • 【数据结构与算法-Day 12】深入浅出栈:从“后进先出”原理到数组与链表双实现
  • 奔图P2500NW打印机加碳粉方法
  • 《Transformer黑魔法Mask与Softmax、Attention的关系:一个-∞符号如何让AI学会“选择性失明“》
  • 深入理解 qRegisterMetaType<T>()
  • DAY32打卡
  • 字符输入流—read方法
  • Kotlin Native调用C curl
  • 内部类详解:Java中的嵌套艺术
  • WebView 中控制光标
  • Diamond基础1:认识Lattice器件
  • 数据结构 二叉树(1)二叉树简单了解
  • Linux学习-数据结构(栈和队列)
  • 8.6学习总结
  • Selenium在Pyhton应用
  • Java 大视界 -- Java 大数据机器学习模型在电商用户生命周期价值评估与客户关系精细化管理中的应用(383)
  • 应急响应排查(windows版)
  • Vue计算属性详解2
  • Python Pandas.lreshape函数解析与实战教程