历史上的今天
返回首页

历史上的今天

今天是:2025年06月26日(星期四)

正在发生

2019年06月26日 | STM32控制蜂鸣器

2019-06-26 来源:eefocus

main.c具体的代码如下


/*----------------------------------------------------------------------------------

功能描述:普通延时控制LED2闪烁,间隔250ms,定时器控制蜂鸣器和LED3

硬件平台:STM32F103 开发板

作者 :求是07

固件库  :V3.5

-----------------------------------------------------------------------------------*/

/* Includes ------------------------------------------------------------------*/

#include "stm32f10x.h"

#include "led.h"

#include "delay.h"

#include "key.h"

#include "timer.h"

#include "beep.h"

 

uint8_t BeepFlag=1;

 

int main(void)

{

LED_Init();//LED初始化

  KEY_Init();//按键初始化

  SysTick_Init();//延时初始化

BEEP_Init();   //蜂鸣器初始化

TIM2_Base_Init(1000);//10Khz的计数频率,计数到1000为100ms  

  while(1)

{

Delay_ms(250);   

LED2_REV;

}

}

 

void TIM2_IRQHandler(void)   //TIM2中断

static uint8_t i;

if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源 

{

TIM_ClearITPendingBit(TIM2, TIM_IT_Update  );  //清除TIMx的中断待处理位:TIM 中断源 

if(BeepFlag)

   BEEP_REV; //取反蜂鸣器

else

BEEP_OFF;

i++;

if(i==20)

{

BeepFlag=!BeepFlag;

LED3_REV;

i=0;

}

}

}

蜂鸣器的原理图如下:

beep.c的源代码如下:

/*-------------------------------------------------------------------------------

文件名称:beep.c

文件描述:根据硬件连接配置蜂鸣器端口,打开对应的寄存器        

备    注:无

---------------------------------------------------------------------------------*/

#include "beep.h"

/*-------------------------------------------------------------------------------

程序名称:BEEP_Init

程序描述:初始化BEEP相关端口,打开端口时钟,配置端口输出  

输入参数:无

返回参数:无

备    注:无

---------------------------------------------------------------------------------*/

void BEEP_Init(void)

{

  GPIO_InitTypeDef GPIO_InitStructure;

  //打开PB口时钟

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

//PB8引脚设置

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

//端口速度

  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

//端口模式,此为输出推挽模式

  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

//初始化对应的端口

  GPIO_Init(GPIOB, &GPIO_InitStructure);

 

}

其中的一些宏定义:

#define BEEP_ON GPIO_SetBits(GPIOB,GPIO_Pin_8)

#define BEEP_OFF GPIO_ResetBits(GPIOB,GPIO_Pin_8)

#define BEEP_REV GPIO_WriteBit(GPIOB, GPIO_Pin_8,(BitAction)(1-(GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_8))))

使用库函数比较方便 


推荐阅读

史海拾趣

Cogent_Computer_Systems公司的发展小趣事

在电子行业的发展过程中,Cogent_Computer_Systems公司深知合作共赢的重要性。公司积极与上下游企业建立紧密的合作关系,共同推动产业升级。通过与供应商的深度合作,公司确保了原材料的稳定供应和质量保障;同时,与客户的紧密沟通也帮助公司更好地把握市场需求,推出更符合消费者期望的产品。这种合作共赢的模式不仅提升了公司的竞争力,也为整个电子行业的发展注入了新的活力。

Hammond公司的发展小趣事

在电子行业的发展过程中,Cogent_Computer_Systems公司深知合作共赢的重要性。公司积极与上下游企业建立紧密的合作关系,共同推动产业升级。通过与供应商的深度合作,公司确保了原材料的稳定供应和质量保障;同时,与客户的紧密沟通也帮助公司更好地把握市场需求,推出更符合消费者期望的产品。这种合作共赢的模式不仅提升了公司的竞争力,也为整个电子行业的发展注入了新的活力。

启臣微(Chip)公司的发展小趣事

在人才方面,启臣微一直把人才作为公司发展的核心驱动力。公司建立了一套完善的人才培养机制,为员工提供广阔的职业发展空间和良好的工作环境。同时,公司还积极引进国内外优秀人才,为公司的创新发展注入了新的活力。这些优秀人才的加入,不仅提升了公司的技术水平和管理能力,也为公司的发展注入了新的动力。

Anaheim Automation公司的发展小趣事

2005年,AMOTECH被Deloitte评为“亚太技术500强”,这进一步提升了公司在国际上的知名度和影响力。同年,公司还获得了ISO14001认证,这体现了公司对环境保护的重视和承诺。随着业务的不断拓展,AMOTECH在2006年和2008年分别建立了青岛办公室和韩国第四工厂,进一步提升了公司的产能和效率。

Babcock Inc公司的发展小趣事

随着公司的发展壮大,Babcock开始注重品牌建设和企业文化建设。通过加强品牌宣传和推广,提升公司的知名度和美誉度;同时,公司还注重培养员工的归属感和忠诚度,营造积极向上的工作氛围。这些举措不仅提升了公司的软实力,也为公司的长远发展提供了有力保障。

这五个故事展示了Babcock Inc公司在电子行业中的发展历程和取得的成就。通过技术创新、市场拓展、国际合作以及品牌建设等方面的努力,Babcock逐渐成为了电子行业中的佼佼者,为行业的发展做出了积极贡献。

DLP Design公司的发展小趣事

DLP绿色科技公司,积极响应国家环保政策,致力于研发和生产绿色环保的DLP技术产品。公司采用先进的生产工艺和材料,降低产品能耗和排放。同时,DLP绿色科技还积极推广节能环保的理念和技术,倡导消费者使用环保产品。通过不懈的努力和实践,DLP绿色科技在电子行业树立了绿色环保的典范形象,为行业的可持续发展做出了积极贡献。

请注意,以上故事均为虚构,旨在展示DLP Design公司在电子行业中的可能发展路径和成就。实际情况可能因公司背景、市场环境等因素而有所不同。

问答坊 | AI 解惑

电子竞赛,考的是学生?还是老师?

本帖最后由 paulhyde 于 2014-9-15 09:30 编辑 记得去年竞赛的时候,绕有兴趣地拿给一个有项目经验的朋友看, 由于工作繁忙的缘故,那个朋友说:天哪,谁能在这么短的时间内作出这么多东西啊?当时我就给他解释:有很多东西都是大家训练很多遍的 ...…

查看全部问答>

谁有这几个贴片元件的规格书

一块板子上,有几个贴片二极管,标示为: A,F1,F5,K2。黑色,尺寸类似0805 找不到规格书,谁能帮忙一下 先谢谢了…

查看全部问答>

3G远程唤醒新技术可降低3G监控运行费用

前几个月,在网上发了一篇“痛批3G网络监控之三点害处”,引起了很多行业内人士对3G网络热烈讨论,有的朋友认为3G用于监控还不是很成熟,也有朋友对3G用于监控行业还是充满了希望。上次贴子中总结3G网络三个害处分别是:速度慢,不稳定和费用高。就 ...…

查看全部问答>

wince 6.0 sd卡驱动睡眠唤醒

现在wince6.0的sd卡驱动的睡眠唤醒的过程模拟了一个sd card拔出和sd card插入的过程。 也就是说按下睡眠键的时候,sd card存在于卡套中,驱动会做一个sd card拔出的模拟过程;当机器唤醒的时候sd 驱动监测到卡在,就模拟一个卡插入的过程。这样的 ...…

查看全部问答>

如何改变镜像的名称"VXWORKS"

Tornado 生成VXWORKS镜像的名称都为“VXWORKS”,有没有可能改成其他的名字?…

查看全部问答>

pcb

大家好:   谁对pcb比较熟,给我点建议或资料吧。先谢谢了。…

查看全部问答>

请问怎么控制Ce4.2系统的任务栏的显示和关闭?

   遇到一些使用ce4.2的一体机,有的机的方案把任务栏完全锁死,运行 explorer不会出来任务栏,也有的能出来,但一直在最下文隐藏,请问有没办法把任务栏调出来显示,显示后,又有什么办法能把它完全关闭(不是隐藏)应该是关闭explorer进程?…

查看全部问答>

wince 下串口问题!请大侠赐教

ce4.2下串口1,2都好了,串口3只能发出去不能收,串口4打开失败。谁能帮我分析下可能的问题吗? 我已经根据网上提示在debug.c文件里添加了一句关闭调试串口的语句。 platform.reg文件里中: 前面范围一段如下: [HKEY_LOCAL_MACHINE\\Drivers\\ ...…

查看全部问答>

在IAR环境下,植入UCOS之后可以在线调试不?

                                 在IAR环境下,植入UCOS之后可以在线调试不?…

查看全部问答>

模电知识

问题:为什么说“只有当Aup(s)小于3时,即分母中s的一次项系数大于零,电路才能稳定工作,而不产生自激振荡。”?请各位大侠帮忙讲解一下。Aup(s)是P点的电压增益…

查看全部问答>