前言
继电器控制是单片机开发中很普遍的也给应用,在学习单片机的过程当中也是比较基础的一个功能,这里我用 stm32f103rb 单片机控制 德力西固态继电器。
一.接线方式
A1接 stm32 pb10管脚,A2接GND管脚。
T1接电源输入L1接电源输出
二.编写程序
raley.h:
#ifndef __RALEY_H
#define __RALEY_H #include "stm32f10x.h"#define RALEY_OFF GPIO_SetBits(GPIOB, GPIO_Pin_10) // Pb10 高电平
#define RALEY_ON GPIO_ResetBits(GPIOB, GPIO_Pin_10) // Pb10低电平// 函数申明
void raley_Init(void);#endif
m_raley.c
#include "stm32f10x.h"
#include "raley.h"void raley_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , ENABLE );GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // 推挽输出GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // 最高输出速率50MHzGPIO_Init(GPIOB, &GPIO_InitStructure); // 选择B端口
}
main.c
*********************************************************************************************/
#include "stm32f10x.h"
#include "delay.h"#include "led.h"
#include "raley.h"
//函数申明
void system_Init(void);/*
********************************************************************************
** 函数名称 : main(void)
** 函数功能 : 主函数
**
**
**
********************************************************************************
*/
int main(void){system_Init(); // 系统初始化while (1){//LED1_ON; // 亮LED2_ON; RALEY_ON;delay_ms(1000);// 延时1s//LED1_OFF; // 灭LED2_OFF;RALEY_OFF;delay_ms(1000);// 延时1s}}/*
********************************************************************************
** 函数名称 : void system_Init(void)
** 函数功能 : 系统初始化函数
**
**
**
********************************************************************************
*/void system_Init(void)
{RCC_Init(); // 时钟初始化 每个程序必须有SysTick_Init(); // 滴答定时器初始化 产生延时函数led_Init(); // 端口初始化 原则是使用哪个IO口 就初始化对应的IO口raley_Init(); //初始化继电器}
三.效果图
源码:
(82条消息) 001-GPIO-raley.rar-其它文档类资源-CSDN下载