当前位置: 首页> 娱乐> 明星 > 门户网址_深圳微信小程序平台_建网站不花钱免费建站_酒吧营销用什么软件找客源

门户网址_深圳微信小程序平台_建网站不花钱免费建站_酒吧营销用什么软件找客源

时间:2025/8/2 7:52:41来源:https://blog.csdn.net/weixin_51931174/article/details/146334094 浏览次数:2次
门户网址_深圳微信小程序平台_建网站不花钱免费建站_酒吧营销用什么软件找客源

目录

1.GPIO基础知识

1.1系统架构

2. IO八种工作模式

2.1STM32 IO工作模式

2.2GPIO的输出速度

3.固件库实现LED点灯

3.1LED灯

LED灯,是一种能够将电能转化为可见光的半导体期间

3.2.控制LED灯

4.STM32控制蜂鸣器

1.蜂鸣器的种类

2.蜂鸣器的控制方式

3.软件设计流程

5 按键基础知识

5.1.深入理解GPIO输入

5.2按键控制LED灯

6 继电器

6.1.继电器的工作原理

6.2.继电器的引脚说明

6.3.单片机控制继电器软件开发流程

7.震动传感器

7.1.震动传感器工作原理

7.2.震动传感器硬件引脚接线

7.3.震动传感器控制灯

8.433无线模块

1.433M无线模块工作原理

2.引脚接线

3.433M控制灯软件开发流程


1.GPIO基础知识

GPIO(General-Purpose input/output,通用输入/输出接口)
用于感知外部信号(输入模式)和控制外部设备(输出模式)
简单模块: LED, 按键,蜂鸣器,温度传感器,使用一个 GPIO 就可以完成数据的传输 / 控制
复杂一点的模块 OLED FLASH, 六轴传感器需要多个引脚组成 协议 传输数据,USART,IIC,SPI等协议
MCU 单片机大都采用引脚复用模式也就是一个 GPIO ,可以直接控制它输出高低电平,也可以设置为某个协议的引脚之一。此外,一些MCU 的引脚,还能设置为 ADC 模式读取模拟信号,或者设置为DAC 模式输出模拟信号。

1.1系统架构

2. IO八种工作模式

GPIO结构图

2.1STM32 IO工作模式

输出模式有四种:推挽输出,开漏输出,复用开漏,复用推挽
输入模式有四种 : 上拉输入,下拉输入,浮空输入,模拟输入
输出模式:
1. 推挽输出( Push-Pull,pp
让输出控制变成了VDD/VSS输出,使得输出电流增大
提高了输出引脚的驱动能力,提高了电路的负载能力和开关的动作速度
2.开漏输出(Open-Drain,OD)
推挽输出模式可以直接输出高电平,开漏输出需要外接上拉电阻才能输出高电平
开漏输出的特性:
利用外部电路驱动能力
实现电平转换
方便实现“逻辑与” 功能
3.复用推挽/开漏输出(Alternate Funtion,AF)
GPIO除了作为通用输入输出引脚使用以外,还可以作为片上外设(USART,IIC,SPI) 专用引脚,即一个引脚可以有多种用途,但是同一时刻一个引脚只能使用复用功能中的一个
当引脚设置为复用功能的时候,可选择推挽复用模式或者复用开漏模式,在设置为复用开漏模式时,需要外接上拉电阻。
输入模式:
1. 上拉输入 (Input Pull-up)
VDD 经过开关、上拉电阻,连接外部 I/O 引脚。当开关闭合时,外部 I/O 输入信号时,默认
输入高电平。
2. 下拉输入 (Input Pull-down)
VSS经过开关,下拉电阻,连接外部I/O引脚,当开关闭合时,外部I/O无输入信号时,默认输入低电平
3. 浮空输入 (Floating Input)
两个上下拉电阻开关均断开,没有上拉也没有下拉,I/O引脚直接连接TTL肖特基触发器,此时,I/O引脚浮空,读取的电平是不确定的,外部信号是什么电平,MCU引脚就输入什么电平 ,MCU复位上电后,默认为浮空输入模式
4.模拟输入(Analoge mode)
两个上下拉电阻开关均断开,同事TTL肖特基触发器也断开,引脚信号直接连接模拟输入,实现对外部信号的采集。

2.2GPIO的输出速度

STM32 I/O 引脚工作再输出模式下时,需要配置 I/O 引脚的输出速度,该输出速度不是输出信号的速度,而是I/O 口驱动电路的响应速度。
STM32 提供了三个速度, 2MHZ,10MHZ,50MHZ
实际开发过程中需要结合实际情况选择合适的响应速度,以兼顾信号的稳定性和低功耗
当设备为高速时,功耗大,噪声大,电磁干扰强
当设备为低速时,功耗低,噪声小,电磁干扰弱
简单外设,比如 LED 灯,蜂鸣器建议使用 2MHZ 的输出速度。
而复用为 IIC SPI 等通信信号时,建议使用 10MHZ 50MHZ 以提高响应速度。

3.固件库实现LED点灯

3.1LED灯

LED灯,是一种能够将电能转化为可见光的半导体期间

原理:当给P极施加正向电压时,空穴和自由电子在P-N结复合,辐射出光子而发光。

3.2.控制LED

LED 灯的正极接到了 3.3V LED 灯的负极接到了 PA1 ,也就是 GPIOA1 引脚,只需要控制PA1 为相对应的低电平,即可点亮对饮的 LED 灯,输出高电平则熄灭对应的 LED灯。
软件设计流程:
1.初始化系统:
        初始化GPIO 外设时钟
        初始化LED 引脚
2.输出电平
实现代码:
led.c文件
#include "led.h"
#include "stm32f10x.h"void LED_Init()
{//³õʼ»¯LEDÒý½ÅGPIOGPIO_InitTypeDef led_initstruct;//³õʼ»¯Ê±ÖÓRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE );led_initstruct.GPIO_Pin=GPIO_Pin_1;            led_initstruct.GPIO_Speed=GPIO_Speed_50MHz;  led_initstruct.GPIO_Mode=GPIO_Mode_Out_PP;  GPIO_Init(GPIOA, &led_initstruct);}

main.c文件

#include "stm32f10x.h"
#include "main.h"
#include "led.h"int  main()
{//初始化等的引脚GPIOLED_Init();while(1){
//让GPIO1输出低电平 灯就亮了GPIO_ResetBits(GPIOA,GPIO_Pin_1);}}

如果要让灯实现一秒闪烁:

main.c文件:

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
void delay(uint16_t time)
{uint16_t i=0;while(time--){i=12000;while(i--);}
}
int  main()
{//初始化等的引脚GPIOLED_Init();while(1){GPIO_ResetBits(GPIOA,GPIO_Pin_1);//GPIO1输出低电平灯亮delay(1000);GPIO_SetBits(GPIOA,GPIO_Pin_1);//GPIO1输出高电平灯灭delay(1000);}}

4.STM32控制蜂鸣器

1.蜂鸣器的种类

蜂鸣器是一种常用的电子发声元器件,采用直流电压供电。广泛应用于计算机,打印
机,报警器,电子玩具,汽车电子设备灯等产品中常见的蜂鸣器可分为有源蜂鸣器和
无源蜂鸣器。

2.蜂鸣器的控制方式

有源蜂鸣器:内部有震荡源,只要通电即可自动发出固定频率的声音。(频率固定无
法控制音色)
无源蜂鸣器:内部无震荡源,需要外部脉冲信号驱动发声,声音频率可变。(可改变
频率来改变音色)

3.软件设计流程

初始化系统
        初始化GPIO外设时钟
        初始化蜂鸣器的引脚
输出电平控制蜂鸣器
bear.c文件
#include "bear.h"
#include "stm32f10x.h"void Bear_Init(void)
{//1.初始化蜂鸣器引脚GPIO_InitTypeDef bear_initstruct;//2.初始化时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);bear_initstruct.GPIO_Pin=GPIO_Pin_3;bear_initstruct.GPIO_Speed=GPIO_Speed_10MHz;bear_initstruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOA,&bear_initstruct);}

main.c文件

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "bear.h"int  main()
{//初始化蜂鸣器的引脚CPIOA3Bear_Init();//GPIO3输出低电平 蜂鸣器响GPIO_ResetBits(GPIOA,GPIO_Pin_3);while(1){}}

5 按键基础知识

5.1.深入理解GPIO输入

GPIO 的特点:
具有内部上拉或下拉的功能
可以使用外部下拉或上拉

按键连接示意图 :

5.2按键控制LED灯

初始化系统
初始化 GPIO 外设时钟
初始化按键和 LED 的引脚
检测按键输入电平来控制 LED
key.c
#include "key.h"
#include "stm32f10x.h"void Key_Init(void)
{//³õʼ»¯°´¼üÍâÉèGPIO_InitTypeDef key_initstruct;//³õʼ»¯Ê±ÖRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOC, ENABLE);key_initstruct.GPIO_Pin=GPIO_Pin_0;key_initstruct.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(GPIOA, &key_initstruct);key_initstruct.GPIO_Pin=GPIO_Pin_13;key_initstruct.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(GPIOC, &key_initstruct);}

main.c

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "bear.h"
#include "key.h"int  main()
{LED_Init();Key_Init();GPIO_SetBits(GPIOA,GPIO_Pin_1);while(1){if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1){					GPIO_ResetBits(GPIOA,GPIO_Pin_1);}if(GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_13)==1){					GPIO_ResetBits(GPIOA,GPIO_Pin_1);}}}

6 继电器

6.1.继电器的工作原理


继电器是一个电控开关,工作原理基于电磁感应,继电器包括一个电磁线圈和一组触点。常用于控制高电流或高电压的电路,例如自动控制原理,电力系统和自动化设备中,由于可靠性和电气隔离的特性可以实现小电流实现大电流,继电器在各种应用中都有广泛的用途。

6.2.继电器的引脚说明


1.VCC(+):供电正极,连接此引脚到电源,以提供继电器所需的电流
2.GND(-):地,连接此引脚到电源的负极或者地。
3.IN:控制输入信号,通常用于连接控制信号,当该信号变化,继电器切换状态。
4.COM(common):公共端,通常是中间的触点,与常开或常闭触点相连。
5.NO(Normally Open):常开接口,继电器吸合前悬空,吸合后于COM连接.6.NC(Normally Closed):常闭接口,继电器吸合前与COM连接,吸合后悬空

 

6.3.单片机控制继电器软件开发流程

初始化系统
        初始化继电器IN引脚对应的GPIO外设时钟
        初始化继电器IN的引脚

输出电平控制继电器开和关

relay.c文件

#include "stm32f10x.h"
#include "relay.h"void Relay_Init(void)
{GPIO_InitTypeDef GPIO_Initstruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_Initstruct.GPIO_Pin=GPIO_Pin_0;GPIO_Initstruct.GPIO_Speed=GPIO_Speed_10MHz;GPIO_Initstruct.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOA,&GPIO_Initstruct);}

main.c文件

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "bear.h"
#include "key.h"
#include "relay.h"void delay(uint16_t time)
{uint16_t i=0;while(time--){i=12000;while(i--);}
}int  main()
{Relay_Init();GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){delay(1000);GPIO_ResetBits(GPIOA,GPIO_Pin_0);delay(1000);GPIO_SetBits(GPIOA,GPIO_Pin_0);		 }}

7.震动传感器

7.1.震动传感器工作原理

震动传感器黑色震动检测传感器,工作时电源LED灯常量,震动信号检测LED灯发生震动的时候会保持亮的过程。正常工作模块DO口输出高电平震动瞬间D0口输出低电平,用于各种震动触发作用,防盗报警,智能小车,电子积木灯等。

7.2.震动传感器硬件引脚接线


1.VCC:接到板子电源的5V或者3.3V。
2.GND:地,连接到板子电源的负极或者GND。
3.DO: 数字信号输出口,可以与单片机相连检测环境是否发生震动。

7.3.震动传感器控制灯


初始化系统
        初始化震动传感器D0相连的单片机引脚时钟。

        初始化震动传感器DO相连的单片机引脚输入

配置检测震动控制LED灯

shake.c文件

#include "shake.h"
#include "stm32f10x.h"void Shake_Init(void)
{GPIO_InitTypeDef Shake_Initstruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,  ENABLE);Shake_Initstruct.GPIO_Pin=GPIO_Pin_0;Shake_Initstruct.GPIO_Mode=GPIO_Mode_IPD;GPIO_Init(GPIOA,&Shake_Initstruct);}

main.c文件

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "bear.h"
#include "key.h"
#include "relay.h"
#include "shake.h"void delay(uint16_t time)
{uint16_t i=0;while(time--){i=12000;while(i--);}
}int  main()
{Led_Init();Shake_Init();GPIO_SetBits(GPIOA,GPIO_Pin_0);while(1){	 if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0){					GPIO_ResetBits(GPIOA,GPIO_Pin_1);delay(1000);GPIO_SetBits(GPIOA,GPIO_Pin_1);delay(1000);}else {GPIO_SetBits(GPIOA,GPIO_Pin_1);}}}

Led_Init同上.

8.433无线模块

1.433M无线模块工作原理


数据发射模块的工作频率为315M,采用声表谐振器SAW稳频,频率稳定度极高,当环境温度在-25~+85度之间变化时,频飘仅为3ppm。接收到信号,接收模块对应针脚输出高电平,有D0 D1D2 D3,可能对应遥控器的A/B/C/D。

2.引脚接线


1.供电正极,连接此引脚到电源,以提供433M无线模块所需的电流                        2.GND(-):地,连接此引脚到电源的负极或者地。
3. D0-D4:连接控制输入信号通常用于连接控制信号,当按键变换控制外设信号


3.433M控制灯软件开发流程


初始化系统
        初始化433M D0-D4引脚对应的GPIO外设时钟
        初始化433M DO-D4引脚配置
433M按键控制外设

yao.c文件

#include "yao.h"
#include "stm32f10x.h"void Yao_Init(void)
{GPIO_InitTypeDef Yao_initstruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);Yao_initstruct.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_2;Yao_initstruct.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(GPIOA,&Yao_initstruct);}

main.c文件

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "bear.h"
#include "key.h"
#include "relay.h"
#include "yao.h"
#include "Exit.h"int  main()
{LED_Init();Yao_Init();GPIO_SetBits(GPIOA,GPIO_Pin_1);//GPIO_ResetBits(GPIOA,GPIO_Pin_3);while(1){if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==1){					GPIO_ResetBits(GPIOA,GPIO_Pin_1);}else if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==1){GPIO_SetBits(GPIOA,GPIO_Pin_1);}}}

关键字:门户网址_深圳微信小程序平台_建网站不花钱免费建站_酒吧营销用什么软件找客源

版权声明:

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

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

责任编辑: