STM32蜂鸣器-库函数

发布者:亚瑟摩根最新更新时间:2019-06-24 来源: eefocus关键字:STM32  蜂鸣器  库函数 手机看文章 扫描二维码
随时随地手机看文章

需要注意的是,使用了库函数的模板就不能胡乱套用寄存器的操作,之前还想放个大招结果出丑了,这里的实验要求是绿灯亮,蜂鸣器响,红灯亮,蜂鸣器停止,蜂鸣器响起间隔半秒,led的文件我这里就不给出了,主要放出beep的文件吧,这里操作的是PF8口。


1.beep.h


#ifndef __BEEP_H

#define __BEEP_H

#include "sys.h"

 

#define BEEP PFout(8)

 

void beep_init(void);

 

#endif

 

2.beep.c


#include "beep.h"

 

void beep_init()

{

    GPIO_InitTypeDef GPIO_InitStructure;

 

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;

    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;

    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

 

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);

    GPIO_Init(GPIOF, &GPIO_InitStructure);

    GPIO_SetBits(GPIOF, GPIO_Pin_8);

}

 


3.main.c


#include "stm32f4xx.h"

#include "usart.h"

#include "delay.h"

#include "led.h"

#include "beep.h"

 

 

int main(void)

{

uart_init(115200);

delay_init(84);

  led_init();

  beep_init();

 

  while(1){

    GPIO_ResetBits(GPIOF, GPIO_Pin_9);

    GPIO_SetBits(GPIOF, GPIO_Pin_10);

    GPIO_ResetBits(GPIOF, GPIO_Pin_8);

    delay_ms(500);

 

    GPIO_SetBits(GPIOF, GPIO_Pin_9);

    GPIO_ResetBits(GPIOF, GPIO_Pin_10);

    GPIO_SetBits(GPIOF, GPIO_Pin_8);

    delay_ms(500);

 

}

}


关键字:STM32  蜂鸣器  库函数 引用地址:STM32蜂鸣器-库函数

上一篇:STM32蜂鸣器-寄存器
下一篇:STM32跑马灯-寄存器

推荐阅读最新更新时间:2024-11-12 16:07

STM32学习日志——按键的单击、双击、长按
前两天去面试的时候,面试官看了我的业余小设计,问了个问题,怎么实现按键的双击,当时的设计只有单击和长按的功能,当时没回答出来。回来后看了下资料,整理并尝试了一下。 大概的思路是这样的,单击与长按的区别在于按下后弹起时间的长短,如果按键一直按着,且大于一个时间值,判断为长按; 否则为非长按,那么就要继续判断是单击还是双击,区别在于弹起后的一个较短时间内是否再次被按下,如果是,则为双击,反之则为单击。 不知道大佬们有没有更好的办法,可以指导下吗? 主函数
[单片机]
IAR建立stm32工程
版本1: stm32是一个当下非常流行的微控制器,很多人都加入了学习stm32的行列中,常用的stm32编译器有IAR和mdk两种,接下来是利用stm32固件库3.5在IAR下的建立的工程模板历程: 1、在常用的文件夹下新建立一个文件夹,根据个人喜好,分别建立如下几个文件夹,用于分别存放固件库中的文件和用户自己的文件 2、将固件库E:STM32stm32固件库3.5STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3DeviceSupportSTSTM32F10xstartupiar目录下的汇编文件复制到刚刚建好的模板目录下F:STM32-IARdemoCMSISStartup
[单片机]
IAR建立<font color='red'>stm32</font>工程
STM32各系列MCU性能对比及测试说明
1写在前面 我们经常听见某手机发布会,安兔兔跑分多少多少,其实这个跑分就是体现手机性能的一个指标。 我们使用STM32开发产品,选择MCU时,一般会综合考虑MCU各方面性能。 对于MCU来说,一个重要指标是功耗,还有一个重要指标就是性能。 当我们进入ST官方微控制器网页,就会发现ST将MCU划分为不同层次,如下图: https://www.st.com/en/microcontrollers.html 从上面层次关系,大致可以了解ST 各MCU的功耗和性能。 2 STM32 CoreMark跑分 STM32家族的32位微控制器基于ARM Cortex®-M处理器设计,为用户提供新的自由度。 产品
[单片机]
<font color='red'>STM32</font>各系列MCU性能对比及测试说明
芯片出货达30亿颗 意法半导体STM32要建立强大的生态帝国
  自2007年 意法半导体 在北京发布首款 STM32 产品以来已有10年之久,今年恰逢 STM32 推向市场10周年, STM32 全球出货量已经超过30亿,成为中国第一大微控制器品牌。下面就随半导体小编一起来了解一下相关内容吧。     不止于此,在ST的战略中,最终目标是要打造一个宏伟的战略生态系统,成为产业领导者。近期,STM32家族增加最新成员STM32L4+系列,该系列拥有一流的功耗、先进的图形处理技术以及大容量嵌入式存储器及生态系统,以帮助用户应对物联网的挑战。截至目前,STM32已经有11大产品系列,800余款产品的强大产品阵容,距离构建其生态系统又加了一码。   风雨十年STM32出货量高达30亿颗   
[半导体设计/制造]
一步一步实现STM32-FOTA系列教程之FLASH静态区读写
前言 在上一篇文章《一步一步实现STM32-FOTA系列教程之STM32-FLASH分区说明》中,对STM32的FLASH进行了人为了分区,分成了 Bootloader分区、主分区、备份分区和静态区四个区域。其中静态区是用来存放系统一些参数信息的,该分区的内容可以通过编程进行读写,如果不人为的破坏该分区,分区里面的信息会一直保存,掉电不丢失,也就是所谓的FLASH模拟EEPROM的功能。 这篇文章就来说说如何在程序中进行FLASH静态区的读写操作,以方便后续的使用。 FLASH静态区使用 我们在FLASH中给静态区分配了32KB大小的空间,即从0x0803 8000 ~ 0x0804 0000 一共 32 * 1024 字节。
[单片机]
STM32(HY-SRF05)超声波测距项目
首先,先来看一下这个模块的基本功能和原理。 HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。像智能小车的测距以及转向,或是一些项目中,常常会用到。智能小车测距可以及时发现前方的障碍物,使智能小车可以及时转向,避开障碍物。 注意是5v输入,但是我用stm32 的3.3v输入也是没有问题的 1、模块(OUT脚的作用是什么) 2、工作原理 (1)、采用IO口TRIG触发测距,给至少10us的高电平信号; (2)、模块自动发送8个40khz的方波,自动检测是否有信号返回; (3)、有信号返回,通过IO口ECHO输出一个高电平,高电
[单片机]
<font color='red'>STM32</font>(HY-SRF05)超声波测距项目
STM32单片机中使用SPI通信的方法
  在本教程中,我们将使用 STM32F103C8 的 Blue Pill 板替换一个 Arduino 板,并将使用 SPI 总线与 Arduino 板进行通信。在这个STM32 SPI 示例中,我们将使用Arduino UNO作为 Slave,STM32F103C8 作为 Master,两个16X2 LCD 显示器分别连接在一起。两个电位器还与STM32(PA0)和Arduino(A0)相连,通过改变电位器来确定主机到从机和从机到主机的发送值(0到255)。   STM32F103C8中的SPI   比较 Arduino 和 STM32F103C8 Blue Pill 板中的 SPI 总线,STM32 有2 条 SPI 总线
[单片机]
在<font color='red'>STM32</font>单片机中使用SPI通信的方法
STM32通过命令行编译和下载keil和IAR工程的方法
可能很多人都不习惯使用Keil、IAR自带的编辑器,可能代码补全、错误提示、高亮等编辑功能相对来说支持的不是很好。 虽然Keil MDK 从 V5.25版本开始对编辑功能改善了很多,但是很多人还是青睐于第三方的编辑器。 使用第三方的编辑器,如果需要编译和下载,就需要借助通过额外的方式实现,比如本文即将描述的通过命令行编译和下载的方式,可以让我们在使用第三方编辑器编辑的时候,进行代码编译和下载。 下面我们来描述以下内容: 常用代码编辑器 Keil 命令行编译下载 IAR 命令行编译下载 编译下载使用方法 1、常用的代码编辑器 下面介绍几款常用的代码编辑器: 1.VS Code VS Code 是绝大部分软件工程师都在使用
[单片机]
<font color='red'>STM32</font>通过命令行编译和下载keil和IAR工程的方法
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved