开发环境

  • Win10 64位
  • Keil MDK5
  • 【火牛开发板 STM32F103VCT6】
  • USB 转串口线(CH340),这里使用RS232的串口,注意区分 TTL电平的
  • 5V 直流电源,用于给开发板【牛角座】供电,当然可以使用USB线供电
  • J-Link V9,用于调试与下载程序

蜂鸣器

  • 开发板上有一个蜂鸣器,这个是【直流】型的,也就是通电就发出声音
  • 使用引脚控制,控制GPIO引脚的高低输出即可
  • 查看原理图:使用的是PB5


  • 注意有个排针跳线,需要使用【跳线帽】短接 JP5的 1、2,这样GPIO 的引脚PB5,才能控制BEEP的导通与关闭

测试程序

  • 这里使用RT-Thread,环境搭建可以参考

  • 【火牛STM32F103VC】RT-Thread 开发测试环境搭建

  • beep.c

#include "beep.h"
#include "board.h"
#include <stdlib.h>void beep_gpio_init(void)
{/* set BEEP pin mode to output */rt_pin_mode(BEEP_PIN, PIN_MODE_OUTPUT);rt_pin_write(BEEP_PIN, PIN_LOW);rt_kprintf("%s : beep init\r\n", __func__);
}void beep_power_on(rt_uint8_t bon)
{if (bon == 0x00){rt_kprintf("%s : beep off\r\n", __func__);rt_pin_write(BEEP_PIN, PIN_LOW);}else{rt_kprintf("%s : beep on\r\n", __func__);rt_pin_write(BEEP_PIN, PIN_HIGH);}
}void beep_test(int argc, char **argv)
{if (argc < 2){beep_power_on(0x01);rt_thread_mdelay(200);beep_power_on(0x00);}else{int beep_cnt = atoi(argv[1]);while (beep_cnt > 0){beep_power_on(0x01);rt_thread_mdelay(50);beep_power_on(0x00);rt_thread_mdelay(80);beep_cnt--;}}
}/* 导出 串口 shell 命令 */
MSH_CMD_EXPORT(beep_test, beep_test);
  • beep.h
#ifndef __BEEP_H__
#define __BEEP_H__#include <rtthread.h>/* defined the BEEP pin: PB5 */
#define BEEP_PIN    GET_PIN(B, 5)void beep_gpio_init(void);
void beep_power_on(rt_uint8_t bon);#endif
  • 在 main 函数(main 线程)中调用 beep_gpio_init() 初始化 BEEP的控制引脚

测试

  • 这里导出了 MSH 串口的命令,这样再串口输入beep_test 3 这样的命令就可以让蜂鸣器吱吱叫了
  • 如:beep_test 3,蜂鸣器叫 3声
msh >beep_test 3
beep_power_on : beep on
beep_power_on : beep off
beep_power_on : beep on
beep_power_on : beep off
beep_power_on : beep on
beep_power_on : beep off

小结

  • 普通的蜂鸣器控制起来很方便,类似引脚控制
  • 注意 shell 命令执行的环境是线程环境,也就是rt_thread_mdelay(100)这的延时函数,需要在线程环境中执行,不能在中断环境,如按键中断里执行延时函数
  • 如果想使用【按键控制BEEP】,需要线程环境,或使用【工作队列】,这个实现方法,后面再整理出来

【火牛STM32F103VC】RT-Thread 蜂鸣器BEEP功能验证相关推荐

  1. 【火牛STM32F103VC】RT-Thread 开发测试环境搭建

    前言 最近STM32的芯片价格高的离谱,当然开发板也不例外,最近翻出来一块[火牛STM32F103VCT6]的开发板,吃灰很多年了,那就擦擦,跑跑RT-Thread,主要是我看上面有个[LCD],想搞 ...

  2. 迅为STM32MP157开发板入门教程之外设功能验证

    一.硬件连接 1 电源的连接 请使用开发板自带的 12V 电源连接开发板的 POWER 插座,如图所示. 2 控制台(console)串口 使用数据线连接开发板的 J8 到 PC 机的串口,在这里 J ...

  3. 使用RT Thread设备框架封装一个I2C设备——DS3231

    使用RT Thread设备框架封装一个I2C设备--DS3231 前言 ENV配置 I2C测试 将ds3231封装成一个字符设备 结语 前言 学习rt thread的I2C的时候,恰巧手上的板子留了d ...

  4. 解决STM8S103K3T6打开BEEP功能遇到的无法操作BEEP_CSR的问题

    最近项目用到了STM8S103K3T6的beep功能,调试时遇到了无法更改寄存器BEEP_CSR的值的问题,造成无法开启beep功能:网上一搜全是提到OPTION BYTE的设置问题,不管用IAR或者 ...

  5. SystemVerilog与功能验证

    目录 一.功能验证流程 二.验证手段.验证技术.验证方法学 三.数据类型与编程结构 四.并发进程与进程同步 五.面向对象编程 六.虚接口 七.随机测试 八.继承与多态 九.功能覆盖率 十.断言 一.功 ...

  6. rt thread studio使用QBOOT和片外flash实现OTA升级

    我们这里要使用单片机外部flash作为OTA的下载分区,外部flash硬件连接关系 PB3-->SPI3_CLK PB4-->SPI3_MISO PB5-->SPI3_MOSI PE ...

  7. RT Thread Free Modbus移植问题整理

    RT Thread Free Modbus移植问题整理 问题描述: 在读写寄存器中,写数据正常,只能读1个寄存器的值,多个值会异常. 在移植过程中发现串口(或RS485)数据接收长度异常. 一.环境描 ...

  8. RT Thread之 Uart2 操作

    官网连接:https://docs.rt-thread.org/#/rt-thread-version/rt-thread-standard/programming-manual/device/uar ...

  9. RT Thread Studio 配置IIC并读取AS5600角度

    RT Thread Studio 配置IIC并读取AS5600角度 一.RT Thread Studio 配置IIC 1.在RT Thread Seting 中开启IIC功能 并保存 一定要保存才能更 ...

最新文章

  1. Linux下路由表调试工具traceroute
  2. 如何学好机器学习数据挖掘?这本《数据分析数学基础》图文并茂带你学习入门...
  3. Ubuntu下配置JAVA环境
  4. R语言第十一讲 决策树与随机森林
  5. python建立多台电脑共用的_用virtualenv建立多个Python独立虚拟开发环境
  6. quill鼠标悬浮 出现提示_jQuery实现鼠标悬停显示提示信息窗口的方法
  7. 手机MODEM开发(27)---VOLTE SIP 信令流程图
  8. AES加密的C语言实现
  9. 新漏洞 RAMpage 曝光:2012年后发布的所有的 Android 手机都危险!
  10. 软件设计师考试内容纲要
  11. Flutter mixin用法详解
  12. 12.UNIX 环境高级编程--线程控制
  13. 用Python - Requests给项目加个短信验证码注册登录,只花了3分钟
  14. android+关闭屏幕旋转,Android:即使设备自动旋转屏幕关闭,如何强制反向纵向?...
  15. 房子装饰风水有哪些讲究和忌讳
  16. 微信读书增长策略:“无限卡会员业务”
  17. oppor15android10怎么降级,OPPO R15系统降级教程_OPPO R15怎么回退到原来旧版本系统
  18. 带你揭秘华为5G为何地表最强
  19. 台式计算机内存是什么问题,如何解决台式机上内存不足的问题
  20. R语言 cowplot包快速拼图

热门文章

  1. Eclipse快捷键耍帅大全
  2. 烟草专卖局反扑:控烟不能“绝对化”“扩大化”
  3. OKHttp五大拦截器
  4. 寒假预备役--打牌的兄弟俩 博弈
  5. 加快程序速度的多种方法
  6. Python程序设计与科学计算精录总结Episode.4 Python进阶:自动化办公应用(基于Michael导师Python课程与VS2019)
  7. 打动人心的演讲方法有哪些
  8. python和尚念经:实例化对象、调用方法、最全属性、最全内置函数
  9. 关于Uber优步无法解除默认绑定支付方式和百度钱包无法解除银行卡/信用卡绑定的问题...
  10. STM32低功耗模式解读