继电器项目

发布时间:2026/6/23 15:56:53

继电器项目 1.代码控制开关口单片机-继电器-模块是否打开2.告诉单片机把灯点亮int main//开始工作 { jidianqi_Init();//继电器IO口初始化 while(1)//循环 { GPIO_SetBits(GPIO_Jidianqi,GPIO_Pin_GuangDeng);//开灯 } }3.继电器控制灯的开关在之前的项目文件中添加jidianqi.c和jidianqi.h文件然后加入到项目工程文件的USER文件夹里//在led.c里定义函数 #includejidainqi.h #includestm32f10x.h void jidianqi_Init(void) { }//在led.h #includestm32f10x.h void jidianqi_Init(void);//函数声明//在main.c函数调用 #include stm32f10x.h #include led.h void delay(uint16_t time) { uint16_t i 0; while(time--) { i12000; while(i--); } } int main() { LED_Init(); jidianqi_Init(); while(1) { } }在jidianqi.c文件//引脚是PA3使能GPIOA时钟,GPIOA3结构体配置,初始化 //使能时钟查看参考手册系统构架GPIO都挂在APB2上在rcc.h文件里找到apb2的外设时钟void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);第一个参数GPIOA找到rcc文件中498行GPIO的标识RCC_APB2Periph_GPIOA第二个参数FunctionalState NewState点击FunctionalState右击出现go to xxx选择第一个到typedef enum {DISABLE 0, ENABLE !DISABLE} FunctionalState;我们要使能即打开即第二个参数选择ENABLE //配置结构体在gpio.h文件夹中101行找到结构体GPIO_InitTypeDef;然后在使能时钟前定义GPIO_InitTypeDef jdq_Init;此时可以配置mode,pin,spee分别推挽输出(在gpio.h文件里的结构体那右击go to xxx 找到推挽输出),3脚(gpio.h文件里130行GPIO_Pin_3),同mode选10MHz //在gpio.h文件里找到void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);对应项目的void GPIO_Init(GPIOA, jdq_Init); #include jidianqi.h #include stm32f10x.h void jdq_Init(void) { GPIO_InitTypeDef jdq_init ; //1.使能GPIOA时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE); //2.GPIOA3结构体配置 Relay_init.GPIO_Mode GPIO_Mode_Out_PP; Relay_init.GPIO_Pin GPIO_Pin_3; Relay_init.GPIO_Speed GPIO_Speed_10MHz; GPIO_Init( GPIOA, jdq_init ); }配置完之后在main.c文件添加#include jidianqi.h但是这个jidianqi.h文件去添加头文件路径(魔术棒c/cinclude paths里添加jidianqi文件夹)最后点亮灯光把继电器PA3电频拉低打开开关在gpio.h文件找到resetbits函数

相关新闻