前言
? ? ? ? 继电器控制是单片机开发中很普遍的也给应用,在学习单片机的过程当中也是比较基础的一个功能,这里我用 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; // 最高输出速率50MHz
GPIO_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下载
|