历史上的今天
返回首页

历史上的今天

今天是:2025年03月29日(星期六)

2019年03月29日 | STM32蜂鸣器-库函数

2019-03-29 来源:eefocus

需要注意的是,使用了库函数的模板就不能胡乱套用寄存器的操作,之前还想放个大招结果出丑了,这里的实验要求是绿灯亮,蜂鸣器响,红灯亮,蜂鸣器停止,蜂鸣器响起间隔半秒,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);

 

}

}


推荐阅读

史海拾趣

General Microcircuits Corp公司的发展小趣事
对于温度敏感的电路,可以采用温度补偿技术来减小因温度变化引起的漂移。
DAESAN公司的发展小趣事

在电子行业的激烈竞争中,DAESAN公司也曾遭遇过困境。一次严重的金融危机让公司的资金链几乎断裂,许多项目被迫中断。然而,DAESAN公司并没有放弃,他们积极寻求外部支持,同时加强内部管理,降低成本,提高效率。在困境中,公司不断总结经验教训,优化经营策略。最终,他们成功度过了危机,实现了逆境中的成长。

Block USA Inc.公司的发展小趣事

除了支付业务外,Block USA Inc.还积极投身于软件SAAS服务的研发与创新。公司推出了一系列针对餐厅、薪资发放和预约等领域的软件解决方案,帮助商家提升运营效率和管理水平。这些软件服务的推出,不仅进一步丰富了Block的产品线,也为其在电子行业中树立了创新者的形象。

AB Connectors Ltd公司的发展小趣事

AB Connectors Ltd成立于上世纪九十年代初,当时电子行业正处于飞速发展的黄金时期。公司创始人张三和李四凭借对连接器技术的深刻理解和对市场需求的敏锐洞察,决定创立这家公司。初创时期,公司面临着资金短缺、技术瓶颈和市场认可度低等挑战。然而,通过不懈的努力,AB Connectors Ltd成功研发出了一款具有竞争力的新型连接器产品,并在国际电子展览会上获得了广泛关注。这为公司打开了市场大门,奠定了发展的基础。

DBLECTRO公司的发展小趣事

在全球化的大背景下,迪贝电子也积极拓展海外市场。公司通过参加国际展览、与国际知名企业合作等方式,不断推广其品牌和产品。同时,公司还针对不同国家和地区的市场需求,推出了适应当地环境和使用习惯的产品。这些努力使得迪贝电子的产品逐渐得到了全球用户的认可和信赖。

Chemi-Con公司的发展小趣事

Chemi-Con公司的历史可以追溯到XXXX年,当时铝电解电容器在日本首次成功实现产品化。这不仅是电子行业的一个里程碑,也是Chemi-Con公司传奇故事的起点。公司创始人凭借对技术的深刻理解和市场的前瞻性,敏锐地捕捉到了铝电解电容器的巨大潜力,并决定将其作为公司的主营业务。在创业初期,Chemi-Con面临着资金、技术和市场等多方面的挑战,但创始人凭借着坚定的信念和不懈的努力,带领公司逐步攻克难关,奠定了在铝电解电容器领域的领先地位。

问答坊 | AI 解惑

电流传播速度和电子漂移速度的区别

电流的产生是由于场强的建立拉动电子形成,场强的建立是非常快的等于光速,所以电流也是光速。 本质上说,金属导体中的电流是由金属中的自由电子定向移动所产生的,电子定向移动的速度由以下的方法简单算出: 设一段金属导体的横截面积为S,自由 ...…

查看全部问答>

桥式电路 发热

我是想用A,B端连在单片机上,输出一高一低,一低一高来控制直流电机正反旋转,可是不知怎么四个上级管发热量惊人。请高人指点,我是初学者。我的程序是: sbit A = P0^0; sbit B = P0^1; delay() {     unsigned int i,j;   ...…

查看全部问答>

用Delphi开发串口通信软件

用Delphi开发串口通信软件一般有两种方法:一是利用Windows的通信API函数,另一种是采用Microsoft的MSComm控件。利用API编写串口通信程序较为复杂,需要掌握大量通信知识,其优点是可实现的功能更强大,应用面更广泛,更适合于编写较为复杂的低层次 ...…

查看全部问答>

51单片机控制PWM时的诡异问题 请帮忙看一下 谢谢

这个程序是用51单片机控制L298,输出pwm波控制直流电机,调试没错误,又加了键盘控制。然后就碰见诡异问题了。用键盘控制高电平占用一个周期的时间。(高低和是10) 在高1低9的时候没问题,但高电平再加,如果不按住键盘输出的一直是最高电压。按住 ...…

查看全部问答>

救命用的

本人来自西部,飘泊沿海,渴盼还乡。 近日投递家乡一家国内知名重工的机电一体化职位,奈何软件由于,硬件不足,被通知转换工具二次开发。 还要做“弈衡招聘选拔测评系统”的评测,搜索之,发现并非分数越高越高,而是要契合。 为了能够凹凸恰到 ...…

查看全部问答>

wince启动中加载的注册表路径问题

现在普遍都是用nandflash作为存储硬盘,所以wince系统加载的默认注册表路径在nandflash下,请问如何修改该加载路径,比如我放到SD卡盘符中……请高人指教…

查看全部问答>

有关ucos的问题

最近由于工作的需要,刚刚接触UCOS ii,原书作者使用了Borland编译器,我想问的是,是否可以使用其他C语言编译器,例如MingW,另外我在使用了其他编译器后,是否需要修改移植文件?…

查看全部问答>

急问:采用2812dec外扩双口ram调试问题。

   在2812dec外扩展了一片2m的双口ram。使用的是存储器扩展总线的zone2空间。采用ce0片选。按照书上的存储器空间映射地址应该为:0x80000-0x100000。调试的时候存在的问题如下:    1)我往这段地址写数、读数的时候,结构争 ...…

查看全部问答>

收到Launchpad(第六批)发帖庆祝~顺便吐槽电容触控板~

昨天下午收到了Launchpad,是第六批发货的。顺丰快递,挺给力的。第一次见识了电容触控板的庐山真面目,下面是一块双面PCB,上面覆盖了一层约1mm厚的有机玻璃。PCB上焊接有9个1206贴片LED(8红1白),还有相应的限流电阻、排母。再就是布线了,无它 ...…

查看全部问答>