欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > STM32-笔记29-蓝牙遥控插座项目

STM32-笔记29-蓝牙遥控插座项目

2025/2/24 2:40:42 来源:https://blog.csdn.net/L_1068/article/details/144893770  浏览:    关键词:STM32-笔记29-蓝牙遥控插座项目

一、实验前期准备

手机通过蓝牙模块远程遥控风扇。(插座的原理就是继电器,所以控制继电器就是控制插座电源)

二、项目实现

复制项目文件夹32-蓝牙模块实现,重命名33-蓝牙遥控插座项目

找到一个继电器项目,把继电器复制到文件夹内

如下图所示:

 重命名文件为plugin

打开项目,加载文件

main.c

#include "sys.h"
#include "delay.h"
#include "led.h"
#include "uart1.h"
#include "bluetooth.h"
#include "plugin.h"int main(void)
{HAL_Init();                         /* 初始化HAL库 */stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟, 72Mhz */led_init();//初始化led灯bt_init(115200);uart1_init(115200);plugin_init();printf("hello word!\r\n");while(1){ }
}

plugin.c

#include "plugin.h"
#include "sys.h"//关于时钟的头文件//初始化GPIO函数
void plugin_init(void)
{GPIO_InitTypeDef gpio_initstruct;//定义一个结构体gpio_initstruct//打开时钟__HAL_RCC_GPIOB_CLK_ENABLE();//调用GPIO初始化函数gpio_initstruct.Mode = GPIO_MODE_OUTPUT_PP;//结构体函数的四种类型,引脚模式、引脚、引脚上拉下拉、引脚速度gpio_initstruct.Pin = GPIO_PIN_6;gpio_initstruct.Pull = GPIO_PULLUP;gpio_initstruct.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOB,&gpio_initstruct);//关闭继电器plugin_OFF();
}
//打开继电器的函数
void plugin_ON(void)
{//把GPIO口拉低,给一个低电平,打开继电器HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_RESET);
}
//关闭继电器的函数
void plugin_OFF(void)
{//把GPIO口拉高,给一个高电平,关闭继电器HAL_GPIO_WritePin(GPIOB,GPIO_PIN_6,GPIO_PIN_SET);
}
uint8_t plugin_status_get(void)
{return (uint8_t)HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_7);//返回这个引脚的状态//为什么使用强转//因为:HAL_GPIO_ReadPin();函数使用的是GPIO_PinState;结构体类型,而这个函数使用的是uint8_t类型
}

plugin.h

#ifndef __PLUGIN_H__
#define __PLUGIN_H__#include "stdint.h"#define PLUGIN_STATUS_ON 0  //继电器低电平触发
#define PLUGIN_STATUS_OFF 1void plugin_init(void);
void plugin_ON(void);
void plugin_OFF(void);
uint8_t plugin_status_get(void);#endif

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词