您的位置:首页 > 房产 > 建筑 > 医院网站建设方案_vi设计网站排行榜_沈阳seo搜索引擎_抚顺网站建设

医院网站建设方案_vi设计网站排行榜_沈阳seo搜索引擎_抚顺网站建设

2024/12/23 16:01:50 来源:https://blog.csdn.net/2302_80867398/article/details/142281033  浏览:    关键词:医院网站建设方案_vi设计网站排行榜_沈阳seo搜索引擎_抚顺网站建设
医院网站建设方案_vi设计网站排行榜_沈阳seo搜索引擎_抚顺网站建设

前言

本篇文章属于stm32单片机(以下简称单片机)的学习笔记,来源于B站教学视频。下面是这位up主的视频链接。本文为个人学习笔记,只能做参考,细节方面建议观看视频,肯定受益匪浅。

STM32入门教程-2023版 细致讲解 中文字幕_哔哩哔哩_bilibili

一、按键介绍

二、传感器模块介绍

 三、硬件电路

上面两个按键按下是低电平,松手是高电平

左边两个要配置为上拉输入模式或下拉输入模式

右边两个可以配置为浮空输入模式也可以配置为上拉输入模式或下拉输入模式

一般采用上面两种接法,一些单片机没有下拉输入模式

 四、实例一(按键控制LED)

1.接线图

2. 代码

LED.c

#include "stm32f10x.h"                  // Device header/*** @brief  LED初始化函数* @param  无* @retval 无*/
void LED_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_SetBits(GPIOA,GPIO_Pin_1 | GPIO_Pin_2);
}/*** @brief  点亮LED1* @param  无* @retval 无*/
void LED1_ON(void)
{GPIO_ResetBits(GPIOA,GPIO_Pin_1);
}/*** @brief  熄灭LED1* @param  无* @retval 无*/
void LED1_OFF(void)
{GPIO_SetBits(GPIOA,GPIO_Pin_1);
}/*** @brief  翻转LED1,处于点亮状态时,熄灭它;处于熄灭状态时,点亮它* @param  无* @retval 无*/
void LED1_Turn(void)
{if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1)==0){GPIO_SetBits(GPIOA,GPIO_Pin_1);}else{GPIO_ResetBits(GPIOA,GPIO_Pin_1);}
}/*** @brief  点亮LED2* @param  无* @retval 无*/
void LED2_ON(void)
{GPIO_ResetBits(GPIOA,GPIO_Pin_2);
}/*** @brief  熄灭LED1* @param  无* @retval 无*/
void LED2_OFF(void)
{GPIO_SetBits(GPIOA,GPIO_Pin_2);
}/*** @brief  翻转LED2,处于点亮状态时,熄灭它;处于熄灭状态时,点亮它* @param  无* @retval 无*/
void LED2_Turn(void)
{if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_2)==0){GPIO_SetBits(GPIOA,GPIO_Pin_2);}else{GPIO_ResetBits(GPIOA,GPIO_Pin_2);}
}

 Key.c

#include "stm32f10x.h"                  // Device header
#include "Delay.h"/*** @brief  按键初始化* @param  无* @retval 无*/
void Key_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_11;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);}/*** @brief  获取键码值* @param  无* @retval KeyNum:键码值*/
uint8_t Key_GetNum(void)
{uint8_t KeyNum = 0;if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)==0){Delay_ms(20);while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1)==0);Delay_ms(20);KeyNum = 1;}if(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11)==0){Delay_ms(20);while(GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11)==0);Delay_ms(20);KeyNum = 2;}return KeyNum;
}

 

 五、实例二(光敏传感器控制蜂鸣器)

1.接线图

2.代码

Buzzer.c 

#include "stm32f10x.h"                  // Device header/*** @brief  蜂鸣器初始化* @param  无* @retval 无*/
void Buzzer_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_SetBits(GPIOB,GPIO_Pin_12);
}/*** @brief  打开蜂鸣器* @param  无* @retval 无*/
void Buzzer_ON(void)
{GPIO_ResetBits(GPIOB,GPIO_Pin_12);
}/*** @brief  关闭蜂鸣器* @param  无* @retval 无*/
void Buzzer_OFF(void)
{GPIO_SetBits(GPIOB,GPIO_Pin_12);
}/*** @brief  翻转蜂鸣器* @param  无* @retval 无*/
void Buzzer_Turn(void)
{if (GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)==0){GPIO_SetBits(GPIOB,GPIO_Pin_12);}else{GPIO_ResetBits(GPIOB,GPIO_Pin_12);}
}

 LightSensor.c

#include "stm32f10x.h"                  // Device header/*** @brief  光敏传感器初始化* @param  无* @retval 无*/
void LightSensor_Init(void)
{RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);}/*** @brief  光敏传感器输入数据* @param  无* @retval 光照强度小输出高电平1,光照强度大输出低电平0*/
uint8_t LightSensor_Get(void)
{return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);
}

 

版权声明:

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

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