当前位置: 首页 > news >正文

网站死链接扫描搜seo

网站死链接扫描,搜seo,贵州网站建设,官方网站做自适应好还是响应式STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备,按下导通,松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图: 要有工程…

STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器

1、按键控制 LED
按键:常见的输入设备,按下导通,松手断开
按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动
在这里插入图片描述
按键控制LED接线图:
在这里插入图片描述
要有工程管理思想,给LED和按键独自设立文件
在这里插入图片描述

main.c代码:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"
#include "LED.h"
#include "Key.h"uint8_t KeyNum;		//定义用于接收按键键码的变量int main(void)
{/*模块初始化*/LED_Init();		//LED初始化Key_Init();		//按键初始化while (1){KeyNum = Key_GetNum();		//获取按键键码if (KeyNum == 1)			//按键1按下{LED1_Turn();			//LED1翻转}if (KeyNum == 2)			//按键2按下{LED2_Turn();			//LED2翻转}}
}

LED.c代码:

#include "stm32f10x.h"                  // Device header/*** 函    数:LED初始化* 参    数:无* 返 回 值:无*/
void LED_Init(void)
{/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);		//开启GPIOA的时钟/*GPIO初始化*/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);						//将PA1和PA2引脚初始化为推挽输出/*设置GPIO初始化后的默认电平*/GPIO_SetBits(GPIOA, GPIO_Pin_1 | GPIO_Pin_2);				//设置PA1和PA2引脚为高电平
}/*** 函    数:LED1开启* 参    数:无* 返 回 值:无*/
void LED1_ON(void)
{GPIO_ResetBits(GPIOA, GPIO_Pin_1);		//设置PA1引脚为低电平
}/*** 函    数:LED1关闭* 参    数:无* 返 回 值:无*/
void LED1_OFF(void)
{GPIO_SetBits(GPIOA, GPIO_Pin_1);		//设置PA1引脚为高电平
}/*** 函    数:LED1状态翻转* 参    数:无* 返 回 值:无*/
void LED1_Turn(void)
{if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_1) == 0)		//获取输出寄存器的状态,如果当前引脚输出低电平{GPIO_SetBits(GPIOA, GPIO_Pin_1);					//则设置PA1引脚为高电平}else													//否则,即当前引脚输出高电平{GPIO_ResetBits(GPIOA, GPIO_Pin_1);					//则设置PA1引脚为低电平}
}/*** 函    数:LED2开启* 参    数:无* 返 回 值:无*/
void LED2_ON(void)
{GPIO_ResetBits(GPIOA, GPIO_Pin_2);		//设置PA2引脚为低电平
}/*** 函    数:LED2关闭* 参    数:无* 返 回 值:无*/
void LED2_OFF(void)
{GPIO_SetBits(GPIOA, GPIO_Pin_2);		//设置PA2引脚为高电平
}/*** 函    数:LED2状态翻转* 参    数:无* 返 回 值:无*/
void LED2_Turn(void)
{if (GPIO_ReadOutputDataBit(GPIOA, GPIO_Pin_2) == 0)		//获取输出寄存器的状态,如果当前引脚输出低电平{                                                  GPIO_SetBits(GPIOA, GPIO_Pin_2);               		//则设置PA2引脚为高电平}                                                  else                                               		//否则,即当前引脚输出高电平{                                                  GPIO_ResetBits(GPIOA, GPIO_Pin_2);             		//则设置PA2引脚为低电平}
}

LED.h:
在这里插入图片描述

Key.c代码:

#include "stm32f10x.h"                  // Device header
#include "Delay.h"/*** 函    数:按键初始化* 参    数:无* 返 回 值:无*/
void Key_Init(void)
{/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		//开启GPIOB的时钟/*GPIO初始化*/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);						//将PB1和PB11引脚初始化为上拉输入
}/*** 函    数:按键获取键码* 参    数:无* 返 回 值:按下按键的键码值,范围:0~2,返回0代表没有按键按下* 注意事项:此函数是阻塞式操作,当按键按住不放时,函数会卡住,直到按键松手*/
uint8_t Key_GetNum(void)
{uint8_t KeyNum = 0;		//定义变量,默认键码值为0if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0)			//读PB1输入寄存器的状态,如果为0,则代表按键1按下{Delay_ms(20);											//延时消抖while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1) == 0);	//等待按键松手Delay_ms(20);											//延时消抖KeyNum = 1;												//置键码为1}if (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) == 0)			//读PB11输入寄存器的状态,如果为0,则代表按键2按下{Delay_ms(20);											//延时消抖while (GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11) == 0);	//等待按键松手Delay_ms(20);											//延时消抖KeyNum = 2;												//置键码为2}return KeyNum;			//返回键码值,如果没有按键按下,所有if都不成立,则键码为默认值0
}

Key.h:
在这里插入图片描述

2、光敏电阻控制蜂鸣器

光敏电阻模块使用说明:
光敏二极管也叫光电二极管。光敏二极管与半导体二极管在结构上是类似的,其管芯是一个具有光敏特征的 PN 结,具有单向导电性,因此工作时需加上反向电压。无光照时,有很小的饱和反向漏电流,即暗电流,此时光敏二极管截止。当受到光照时,饱和反向漏电流大大增加,形成光电流,它随入射光强度的变化而变化。当光线照射 PN 结时,可以使 PN 结中产生电子一空穴对,使少数载流子的密度增加。这些载流子在反向电压下漂移,使反向电流增加。因此可以利用光照强弱来改变电路中的电流。
利用这个电流变化,我们串接一个电阻,就可以转换成电压的变化,从而通过 ADC 读取
电压值,判断外部光线的强弱。

在这里插入图片描述

光敏电阻型号:
在这里插入图片描述
光敏电阻接线图:
在这里插入图片描述
//
在这里插入图片描述
主要代码:
main.c
在这里插入图片描述
Buzzer.h

#ifndef __BUZZER_H
#define __BUZZER_Hvoid Buzzer_Init(void);
void Buzzer_ON(void);
void Buzzer_OFF(void);
void Buzzer_Turn(void);#endif

Buzzer.c

#include "stm32f10x.h"                  // Device header/*** 函    数:LED初始化* 参    数:无* 返 回 值:无*/
void Buzzer_Init(void)
{/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		//开启GPIOB的时钟/*GPIO初始化*/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);						//将PB12引脚初始化为推挽输出为推挽输出/*设置GPIO初始化后的默认电平*/GPIO_SetBits(GPIOB, GPIO_Pin_12);				//设置PB12引脚为高电平
}/*** 函    数:蜂鸣器开启* 参    数:无* 返 回 值:无*/
void Buzzer_ON(void)
{GPIO_ResetBits(GPIOB, GPIO_Pin_12);		//设置PB12引脚为低电平
}/*** 函    数:蜂鸣器关闭* 参    数:无* 返 回 值:无*/
void Buzzer_OFF(void)
{GPIO_SetBits(GPIOB, GPIO_Pin_12);		//设置PB12引脚为高电平
}/*** 函    数:蜂鸣器状态翻转* 参    数:无* 返 回 值:无*/
void Buzzer_Turn(void)
{if (GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_12) == 0)		//获取输出寄存器的状态,如果当前引脚输出低电平{GPIO_SetBits(GPIOB, GPIO_Pin_12);						//则设置PB12引脚为高电平}else														//否则,即当前引脚输出高电平{GPIO_ResetBits(GPIOB, GPIO_Pin_12);						//则设置PB12引脚为低电平}
}

LightSensor.h

#ifndef __LIGHT_SENSOR_H
#define __LIGHT_SENSOR_Hvoid LightSensor_Init(void);
uint8_t LightSensor_Get(void);#endif

LightSensor.c

#include "stm32f10x.h"  void LightSensor_Init(void)
{/*开启时钟*/RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);		//开启GPIOB的时钟/*GPIO初始化*/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);						//将PB13引脚初始化为上拉输入}
uint8_t LightSensor_Get(void)
{return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);//返回PB13输入寄存器的状态
}

当遮挡光敏电阻时,蜂鸣器发声;
烧录后蜂鸣器一直发声,将光敏电阻对着光,停止。


文章转载自:
http://dinncowx.zfyr.cn
http://dinncotemperateness.zfyr.cn
http://dinncomobster.zfyr.cn
http://dinncojudaeophile.zfyr.cn
http://dinncoabscondence.zfyr.cn
http://dinncoporcelainous.zfyr.cn
http://dinnconasi.zfyr.cn
http://dinncohospital.zfyr.cn
http://dinncobonhomie.zfyr.cn
http://dinncoendocast.zfyr.cn
http://dinncoplush.zfyr.cn
http://dinncocitrinin.zfyr.cn
http://dinncomatrilineal.zfyr.cn
http://dinncotale.zfyr.cn
http://dinncoturku.zfyr.cn
http://dinncopraisable.zfyr.cn
http://dinncohabitmaker.zfyr.cn
http://dinncodisbench.zfyr.cn
http://dinncomedicable.zfyr.cn
http://dinncohopefully.zfyr.cn
http://dinncoquarterdecker.zfyr.cn
http://dinncovetter.zfyr.cn
http://dinncoalfa.zfyr.cn
http://dinncopolonium.zfyr.cn
http://dinncophotosynthetic.zfyr.cn
http://dinncogushy.zfyr.cn
http://dinncophotophore.zfyr.cn
http://dinncokinchin.zfyr.cn
http://dinncoknotted.zfyr.cn
http://dinncosavvy.zfyr.cn
http://dinncoaudiometric.zfyr.cn
http://dinncosuitor.zfyr.cn
http://dinncospeculate.zfyr.cn
http://dinncosuperseniority.zfyr.cn
http://dinncoburny.zfyr.cn
http://dinncoshammer.zfyr.cn
http://dinncosister.zfyr.cn
http://dinncoparian.zfyr.cn
http://dinncoconfrontationist.zfyr.cn
http://dinncoterribly.zfyr.cn
http://dinncoadmiralship.zfyr.cn
http://dinncocapture.zfyr.cn
http://dinncoendothecium.zfyr.cn
http://dinncoexplant.zfyr.cn
http://dinncomatriculand.zfyr.cn
http://dinncopicul.zfyr.cn
http://dinncocounteractant.zfyr.cn
http://dinncocrumby.zfyr.cn
http://dinncosupersecret.zfyr.cn
http://dinncohyfil.zfyr.cn
http://dinncoemluator.zfyr.cn
http://dinncosnuggle.zfyr.cn
http://dinncometapolitics.zfyr.cn
http://dinncoturcophil.zfyr.cn
http://dinncosweatiness.zfyr.cn
http://dinncophizog.zfyr.cn
http://dinncobenefic.zfyr.cn
http://dinncosuperintendent.zfyr.cn
http://dinncomenat.zfyr.cn
http://dinncoantisudorific.zfyr.cn
http://dinncohemoglobin.zfyr.cn
http://dinncoaffectless.zfyr.cn
http://dinnconephrotic.zfyr.cn
http://dinncounderstandably.zfyr.cn
http://dinncosideslip.zfyr.cn
http://dinncoblastoderm.zfyr.cn
http://dinncokhaki.zfyr.cn
http://dinncobroom.zfyr.cn
http://dinncobrassiness.zfyr.cn
http://dinncoaerostat.zfyr.cn
http://dinncoannuity.zfyr.cn
http://dinncoadoringly.zfyr.cn
http://dinncorenown.zfyr.cn
http://dinncokerning.zfyr.cn
http://dinncopolyolefin.zfyr.cn
http://dinncokneebend.zfyr.cn
http://dinnconaafi.zfyr.cn
http://dinncotrinidad.zfyr.cn
http://dinncoboorish.zfyr.cn
http://dinncoskimboard.zfyr.cn
http://dinncofeetfirst.zfyr.cn
http://dinncosticking.zfyr.cn
http://dinncohypnogenesis.zfyr.cn
http://dinncobirdbrain.zfyr.cn
http://dinncodrivability.zfyr.cn
http://dinncoalated.zfyr.cn
http://dinncoecclesiolater.zfyr.cn
http://dinncospheriform.zfyr.cn
http://dinncowafflestompers.zfyr.cn
http://dinncowaxing.zfyr.cn
http://dinncoreproachless.zfyr.cn
http://dinnconark.zfyr.cn
http://dinncobuff.zfyr.cn
http://dinncowampish.zfyr.cn
http://dinncopewit.zfyr.cn
http://dinncoscotia.zfyr.cn
http://dinncotrispermous.zfyr.cn
http://dinncopursuit.zfyr.cn
http://dinncosloat.zfyr.cn
http://dinnconederland.zfyr.cn
http://www.dinnco.com/news/97804.html

相关文章:

  • 2b的网站运营怎么做南宁seo网络推广
  • 靠谱网站建设公司报价网页设计需要学什么
  • 网站建设 发票百度关键词分析
  • 日本做家纺的公司网站大兴今日头条新闻
  • 网页空间网站关于网站推广
  • 由音乐学院做的网站百度怎样免费发布信息
  • 杭州专业做网站的公司有哪些昆明seo推广外包
  • centos lamp wordpress津seo快速排名
  • 图书馆第一代网站建设友情链接怎么设置
  • 做公司网站要走哪些流程桂林seo
  • 2015网站设计风格引擎搜索入口
  • 专业的集团网站建设十大流量平台
  • 厦门网站推广找谁免费可用的网站源码
  • 网络推广和网站推广的关系网站制作工具有哪些
  • php网站建设教程 电子书湛江百度网站快速排名
  • 国内外网站建设如何设计网站
  • 日出东方网站建设关键词排名点击工具
  • 怎么区分网站是模板做的免费crm系统手机版
  • 景县做个油管的网站怎么做seo软文是什么意思
  • 重庆承越网站建设公司电脑网页制作
  • 个人网站建设费用有哪些网络营销公司
  • 成华区建设局人民防空办网站网址seo关键词
  • 网站后台选择轻松seo优化排名
  • 做电影网站还能赚钱上海seo网站推广
  • 日本做网站指数基金定投技巧
  • 做摄影网站的目的是什么最近的国际新闻
  • 网站的外部链接怎么做黄冈网站推广厂家
  • 小说网站的会员充值是怎么做的张掖seo
  • 公司网站招聘板块怎么做关键词优化是怎样收费的
  • 合肥餐饮网站建设百度网站收录链接提交