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

flash+xml网站模板大都会app下载二维码

flash+xml网站模板,大都会app下载二维码,wordpress文章总是被修改,小众做的好的网站STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备#xff0c;按下导通#xff0c;松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图#xff1a; 要有工程…STM32学习之 按键/光敏电阻 控制 LED/蜂鸣器 1、按键控制 LED 按键:常见的输入设备按下导通松手断开 按键抖动:由子按键内部使用的是机械式弹簧片来进行通断的、所以在按下和松手的瞬间会伴随有一连串的抖动 按键控制LED接线图 要有工程管理思想给LED和按键独自设立文件 main.c代码 #include stm32f10x.h // Device header #include Delay.h #include LED.h #include Key.huint8_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://www.yayakq.cn/news/5543/

相关文章:

  • 泾川县建设局网站舒城县建设局网站首页
  • 网站设计模板连城县住房和城乡建设局 网站
  • 网站建设范围微商商城系统开发
  • 做自动发货网站台州关键词排名优化
  • seo培训网的优点是seo推广任务小结
  • 医疗保健网站前置审批文件局域网建站软件
  • 网站建设目的功能wordpress 导航图片尺寸
  • 昌邑网站建设公司广州 环保 凡人网站建设
  • 程序员做网站美工能过关吗树莓派搭建wordpress
  • 开一个免费网站手机怎样做网站
  • 秦都区建设局网站音响网站模板免费下载
  • 网站汉英结合的怎么做竞价如何屏蔽恶意点击
  • 扫二维码做自己网站wordpress下单邮件通知的实现
  • 南昌建设厅网站网站首页背景图片
  • 重庆网站建设 渝网站开发程序介绍
  • h5是什么网站上面做的适合个人做外贸的网站
  • 做餐饮培训网站广告2345电脑版
  • 淘宝做基础销量怎么网站汕头seo不错
  • 建设进出口外贸网站最新国际热点新闻事件
  • 网站备案在线注销江苏省建设工程信息一体化平台
  • 深圳网站建设力荐上榜网络个体可以做企业网站吗
  • 黄冈网站建设哪家好手机网站模板 psd
  • 家里电脑做网站服务器网站建设首页需要哪些元素
  • 做网站现在什么最赚钱吗网站 免费空间
  • 湖北省建设工程人力资源网站建设网站需要做什么
  • 轻松建站wordpress gonzo
  • 快速收录网站内页自己做下载网站吗
  • 高大上网站wordpress 2.6
  • 安阳信息港网站wordpress 中文安装
  • 怎么做粉丝福利购网站品牌高端网站制作机构