STM32F103ZET6 蜂鸣器、按键
蜂鸣器的硬件电路:
蜂鸣器实验步骤:
实验步骤基本和跑马灯一样,代码和跑马灯也基本一样,只是用的GPIO不同。
几种输入输出模式:
beep.c部分代码:
#include "beep.h"
#include "stm32f10x.h"void BEEP_Init(void)
{GPIO_InitTypeDef GPIO_InitLed;//定义GPIO_InitTypeDef类型的结构体RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//使能GPIOB的时钟GPIO_InitLed.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_InitLed.GPIO_Pin=GPIO_Pin_8;GPIO_InitLed.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitLed);GPIO_ResetBits(GPIOB,GPIO_Pin_8);
}
beep.h部分代码:
#ifndef _BEEP_H
#define _BEEP_Hvoid BEEP_Init(void);
#endif
main.c部分代码:
#include "stm32f10x.h"
#include "beep.h"
#include "delay.h"
int main(void)
{ delay_init();BEEP_Init();while(1){GPIO_SetBits(GPIOB,GPIO_Pin_8);/高电平响delay_ms(500);GPIO_ResetBits(GPIOB,GPIO_Pin_8);//低电平不响delay_ms(500);}
}
按键部分代码:
主要是这个函数,通过设置静态变量来实现按键是否支持连按,若mode=0则不支持连按,就相当于开关,若mode=1则支持连按,就是若按键不松开则if中就会一直返回数值。
u8 KEY_Scan(u8 mode)
{ static u8 key_up=1;//按键按松开标志if(mode)key_up=1; //支持连按 if(key_up&&(KEY0==0||KEY1==0||KEY2==0||WK_UP==1)){delay_ms(100);//去抖动 key_up=0;if(KEY0==0)return KEY0_PRES;else if(KEY1==0)return KEY1_PRES;else if(KEY2==0)return KEY2_PRES;else if(WK_UP==1)return WKUP_PRES;}else if(KEY0==1&&KEY1==1&&KEY2==1&&WK_UP==0)key_up=1; return 0;// 无按键按下
}
STM32F103ZET6 蜂鸣器、按键相关推荐
- 基于STM32F103ZET6库函数按键输入实验
基于STM32F103ZET6库函数按键输入实验 GPIO_ReadInputDataBit函数 硬件设计 软件设计 我们将通过 ALIENTEK 精英 STM32F103 上载有的 3 个按钮(KE ...
- Arduino 蜂鸣器+按键 (按一下响一声)
Arduino 蜂鸣器+按键 (按一下响一声) 写在前面 这次的蜂鸣器和按键组合依旧没什么难度,和上一篇的数码管+LED灯一样,非要说作用的话就是锻炼整合代码的能力吧 说正经的 好像也没什么需要准备的 ...
- C语言sopc蜂鸣器按键弹奏中音,SOPC乐曲演奏大作业.doc
PAGE 1 综合实验 基于NiosII的乐曲演奏设计 单 位: 班 级: 组 员: 指导老师: 首 都 师 范 大 学 2012年5月 目录 TOC \o "1-3" \h \u ...
- 蜂鸣器+按键+led灯组合使用
第一天作业讲解 宏定义一般放到.h文件里面 #define led0 0 #define led1 1#define led_on 0 #define led_off 1enum LED_num {l ...
- C语言sopc蜂鸣器按键弹奏中音,基于sopc 蜂鸣器
基于sopc的 蜂鸣器 实验 实验五 蜂鸣器音乐播放实验 一.实验目的 (1).掌握蜂鸣器音乐播放的实验原理. (2).学习PWM对交流蜂鸣器的控制. 二.实验设备 硬件:PC机,SmartSOPC教 ...
- 控制LED灯和蜂鸣器的按键实验
按键实验 描述 用到的相关寄存器 GPIO IDR ODR RCC 确定位置 LED灯 蜂鸣器 按键 程序及分析 不支持连续按 视频展示 支持连续按 视频展示 总结 描述 本喵这次介绍的实验是按键实验 ...
- GPIO 按键及矩阵键盘程序------/* 自己实验确认并总结 */
新型的按键扫描程序 不过入式处理器上面我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉.我非常坚信这种按键处理办法的便捷和高效,你可以移植 ...
- 基于STM32F103+AS608指纹模块+4X4矩阵按键+SIM900A发短信——智能门禁卡系统
STM32F103-智能门禁卡系统 1.基本介绍 1.用到硬件 2.功能介绍 2.代码 指纹模块 SIM900A模块 矩阵按键 主程序 项目展示 验证密码开锁演示 指纹验证开锁演示 添加指纹演示 删除 ...
- 经典按键扫描算法理解
以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,AVR,PIC,甚至是ARM平台上面测试这个程序性能. 以下以AVR的MEGA8作为平台讲解,没有其它原因,因为我 ...
最新文章
- android美拍相机
- python3数据类型:Tuple(元组)
- Docker入门 - 005 Docker 容器连接
- 游戏AI –行为树简介
- C和汇编----字符串
- c语言判断二叉树是不是二叉排序树_C语言:数据结构-树表的查找
- 为什么我要构建这个脚手架
- [七月挑选]Tomcat使用命令行启动之指定jdk版本
- jquery内核学习(3)--作用域分割(下)
- 【渝粤题库】陕西师范大学200621 英语词汇学 作业
- uni-app 网络请求
- 企业管理小故事【有问题4个管理小法则】
- 国家级赛事正式开赛 | 2019数字中国创新大赛上线
- Win7蓝屏提示STOP: 0x0000008E (0xC0000005,0xA4E7B664,0X852E946C,0X00000000)的一种处理方法
- update与fixedupdate检测键盘输入的出现的问题
- 分享 | 日置3561电池测试仪调零/自校准详解教程
- 分布式技术原理与实战45讲--05 第05讲:共识问题:区块链如何确认记账权?
- java随机生成手机号
- 【Qt学习】 碰撞检测 图元绘制
- 小米笔记本电脑故障——USB口拷贝文件中断/电池在低温时无输出
热门文章
- vb语言程序设计_如果编程语言难度决定头发浓度,学这语言的可能要光头了
- linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波10 - 直方图处理 - 局部直方图处理
- 数据结构-顺序表(C语言实现)
- Microsoft Windows Workflow Foundation 入门
- Euler:欧拉函数&素数筛
- webpack4 入门配置研究
- Freemarker模板引擎
- 原生及jq方式使用ajax
- 一键去除网页BOM属性【解决乱码,头部空白,#65279问题】