蜂鸣器的硬件电路:

蜂鸣器实验步骤:
实验步骤基本和跑马灯一样,代码和跑马灯也基本一样,只是用的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 蜂鸣器、按键相关推荐

  1. 基于STM32F103ZET6库函数按键输入实验

    基于STM32F103ZET6库函数按键输入实验 GPIO_ReadInputDataBit函数 硬件设计 软件设计 我们将通过 ALIENTEK 精英 STM32F103 上载有的 3 个按钮(KE ...

  2. Arduino 蜂鸣器+按键 (按一下响一声)

    Arduino 蜂鸣器+按键 (按一下响一声) 写在前面 这次的蜂鸣器和按键组合依旧没什么难度,和上一篇的数码管+LED灯一样,非要说作用的话就是锻炼整合代码的能力吧 说正经的 好像也没什么需要准备的 ...

  3. C语言sopc蜂鸣器按键弹奏中音,SOPC乐曲演奏大作业.doc

    PAGE 1 综合实验 基于NiosII的乐曲演奏设计 单 位: 班 级: 组 员: 指导老师: 首 都 师 范 大 学 2012年5月 目录 TOC \o "1-3" \h \u ...

  4. 蜂鸣器+按键+led灯组合使用

    第一天作业讲解 宏定义一般放到.h文件里面 #define led0 0 #define led1 1#define led_on 0 #define led_off 1enum LED_num {l ...

  5. C语言sopc蜂鸣器按键弹奏中音,基于sopc 蜂鸣器

    基于sopc的 蜂鸣器 实验 实验五 蜂鸣器音乐播放实验 一.实验目的 (1).掌握蜂鸣器音乐播放的实验原理. (2).学习PWM对交流蜂鸣器的控制. 二.实验设备 硬件:PC机,SmartSOPC教 ...

  6. 控制LED灯和蜂鸣器的按键实验

    按键实验 描述 用到的相关寄存器 GPIO IDR ODR RCC 确定位置 LED灯 蜂鸣器 按键 程序及分析 不支持连续按 视频展示 支持连续按 视频展示 总结 描述 本喵这次介绍的实验是按键实验 ...

  7. GPIO 按键及矩阵键盘程序------/* 自己实验确认并总结 */

    新型的按键扫描程序 不过入式处理器上面我在网上游逛了很久,也看过不少源程序了,没有发现这种按键处理办法的踪迹,所以,我将他共享出来,和广大同僚们共勉.我非常坚信这种按键处理办法的便捷和高效,你可以移植 ...

  8. 基于STM32F103+AS608指纹模块+4X4矩阵按键+SIM900A发短信——智能门禁卡系统

    STM32F103-智能门禁卡系统 1.基本介绍 1.用到硬件 2.功能介绍 2.代码 指纹模块 SIM900A模块 矩阵按键 主程序 项目展示 验证密码开锁演示 指纹验证开锁演示 添加指纹演示 删除 ...

  9. 经典按键扫描算法理解

    以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,AVR,PIC,甚至是ARM平台上面测试这个程序性能. 以下以AVR的MEGA8作为平台讲解,没有其它原因,因为我 ...

最新文章

  1. android美拍相机
  2. python3数据类型:Tuple(元组)
  3. Docker入门 - 005 Docker 容器连接
  4. 游戏AI –行为树简介
  5. C和汇编----字符串
  6. c语言判断二叉树是不是二叉排序树_C语言:数据结构-树表的查找
  7. 为什么我要构建这个脚手架
  8. [七月挑选]Tomcat使用命令行启动之指定jdk版本
  9. jquery内核学习(3)--作用域分割(下)
  10. 【渝粤题库】陕西师范大学200621 英语词汇学 作业
  11. uni-app 网络请求
  12. 企业管理小故事【有问题4个管理小法则】
  13. 国家级赛事正式开赛 | 2019数字中国创新大赛上线
  14. Win7蓝屏提示STOP: 0x0000008E (0xC0000005,0xA4E7B664,0X852E946C,0X00000000)的一种处理方法
  15. update与fixedupdate检测键盘输入的出现的问题
  16. 分享 | 日置3561电池测试仪调零/自校准详解教程
  17. 分布式技术原理与实战45讲--05 第05讲:共识问题:区块链如何确认记账权?
  18. java随机生成手机号
  19. 【Qt学习】 碰撞检测 图元绘制
  20. 小米笔记本电脑故障——USB口拷贝文件中断/电池在低温时无输出

热门文章

  1. vb语言程序设计_如果编程语言难度决定头发浓度,学这语言的可能要光头了
  2. linux 如何查看终端格式,你应该还不知道,Linux终端下的 Markdown 文档查看器
  3. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波10 - 直方图处理 - 局部直方图处理
  4. 数据结构-顺序表(C语言实现)
  5. Microsoft Windows Workflow Foundation 入门
  6. Euler:欧拉函数&素数筛
  7. webpack4 入门配置研究
  8. Freemarker模板引擎
  9. 原生及jq方式使用ajax
  10. 一键去除网页BOM属性【解决乱码,头部空白,#65279问题】