锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【STM32单片机-库函数】继电器——relay

时间:2022-12-19 22:30:01 低电平使继电器吸合的原因1输出继电器0输出继电器3定时电压继电器数字输出8点继电器控制输出继电器控制板

5V继电器模块-1

实验演示:

  1. 工作电压5V
  2. 模块I/O接STM32的PG6引脚,泄漏输出

relay.h

#ifndef __RELAY_H #define __RELAY_H     /************************************************************ **> File Name:    relay.h                  **> Description:  RELAY GPIO - hardware driver **> Author:     xinso **> blog:       xinso.blog.csdn.net **> Created Time:  2021.04.06 **-------------------------------------------------------- **> 本程序仅供学习,未经作者许可,不得用于任何其他用途 *************************************************************/  #ifdef __cplusplus extern "c"{ #endif    #include "sys.h"  /* 控制寄存器直接操作的方法IO */ #define digitalHi(p,i)    {p->BSRR=i;} //输出高电平   #define digitalLo(p,i)    {p->BRR=i;}   //输出低电平 #define digitalToggle(p,i)   {p->ODR ^=i;} //输出反转状态  /* 继电器控制引脚定义*/ #define RELAY1_GPIO_PORT     GPIOG                  #define RELAY1_GPIO_CLK      RCC_APB2Periph_GPIOG   #define RELAY1_GPIO_PIN      GPIO_Pin_6        /* 我买的继电器模块低电平有效*/ #define RELAY1_ON     digitalLo(RELAY1_GPIO_PORT,RELAY1_GPIO_PIN) #define RELAY1_OFF        digitalHi(RELAY1_GPIO_PORT,RELAY1_GPIO_PIN)  void RELAY_GPIO_Init(void); //初始化   #ifdef __cplusplus  } #endif  #endif /* __RELAY_H */ 

relay.c

#include "relay.h"  /************************************************************ **> File Name:    relay.c                  **> Description:  RELAY GPIO - hardware driver **> Author:     xinso **> blog:       xinso.blog.csdn.net **> Created Time:  2021.04.06 **-------------------------------------------------------- **> 本程序仅供学习,未经作者许可,不得用于任何其他用途 *************************************************************/  void RELAY_GPIO_Init(void)         {    GPIO_InitTypeDef GPIO_InitStructure;    RCC_APB2PeriphClockCmd( RELAY1_GPIO_CLK , ENABLE); //使能GPIO端口时钟   GPIO_InitStructure.GPIO_Pin = RELAY1_GPIO_PIN ; //RELAY1 GPIO   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;  ///不行,改为推挽输出: GPIO_Mode_Out_PP  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //速度为50MHz  GPIO_Init(RELAY1_GPIO_PORT, &GPIO_InitStructure);   RELAY1_OFF; //关闭继电器控制 } 

有问题加入QQ群号643807576STM32学习交流分享

附件:继电器模块工作电压5V,吸合电流约70mA带继电器状态指示灯的每示灯;I/O直接输入信号和单片机IO连接口或数字电路,吸入高电平继电器,释放低电平继电器;全贴片元件,最合理的驱动电路设计,采用8050三极管驱动继电器动作。

我用过正点原子精英板(STM32F控制5103v在继电器模块中,继电器的工作状态可以通过泄漏输出正常控制,而通用推拉输出模式继电器不工作,不反应(通常,继电器由推拉输出驱动)I/O是的,我想问一下为什么精英板有时不能用推拉输出模式驱动5V继电器模块?

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章