(1)main()函数中:
int BeeTime=0;
int soundSta=0;
void main()
{
TIM2_Init();
soundBee(1);//长响一声
soundBee(0);//短响一声
}
void TIM2_Init()
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
TIM_TimeBaseStructure.TIM_Period = (TIM_CLK / 200000) - 1;
TIM_TimeBaseStructure.TIM_Prescaler = 1999;
TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
TIM_SetAutoreload(TIM2, ((TIM_CLK / 200000) - 1));
TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE); // 打开捕获比较中断 TIM_IT_Update
TIM_Cmd(TIM2, ENABLE); //开启时钟
}
/***********************
功能:蜂鸣器启动
sta:1为成功,0为失败
***********************/
void soundBee(int sta)
{
DOOR_PWR1(1);
if(sta==1)
{
soundSta=0;
BeeTime = 80;
}else{
soundSta=1;
BeeTime = 20;
}
}
(2)hardware_conf.h函数中:
#define DOOR_PWR1(tmp) GPIOA->ODR=tmp?(GPIOA->ODR|1<<1):(GPIOA->ODR&(~(1<<1))) //蜂鸣器
(3)stm32f10x_it.c函数中:
extern int BeeTime;
void TIM2_IRQHandler(void)
{
if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
{
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
if(BeeTime<0)
{
BeeTime++;
if(BeeTime==0)
{
DOOR_PWR1(1);
BeeTime=20;
}
}
if(BeeTime>0||soundSta==2)
{
if(BeeTime>0) BeeTime--;
if(BeeTime==0)
{
if(soundSta==0)
{
DOOR_PWR1(0);
}
else if(soundSta==1)
{
DOOR_PWR1(0);
BeeTime=-10;
soundSta=2;
}
else
{
DOOR_PWR1(0);
soundSta=0;
}
}
}
}
else if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)
{
TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
}
}
上一篇:STM32F030控制LED
下一篇:STM32延时函数的四种方法
推荐阅读最新更新时间:2024-11-09 16:31
设计资源 培训 开发板 精华推荐
- sc8815a测试 已验证
- LTC2633-LO8 双路 8 位数模转换器的典型应用
- 使用 MaxLinear, Inc 的 SPX5205M5-5.0 的参考设计
- MIC5378YMT EV,高性能低压差 150mA LDO
- 使用 Analog Devices 的 LTC3803IS6-3 的参考设计
- LTC1261LIS8-4.5 -4V 发生器的典型应用电路,具有电源有效开关电容器稳压逆变器
- LTC3206EUF 演示板,I2C 多显示 LED 控制器,Vin = 2.7V - 4.5V
- 使用 LTC2367CMS-18、18 位、500ksps SAR ADC 的典型应用
- 用于远程控制的 434MHz 射频收发器
- DC2247A,基于 LT3922 36V 2A 同步 2MHz 升压 LED 驱动器的演示板
- 技术直播:TI 60G毫米波传感器概述和应用介绍,种草封装了天线的智能传感器IWR6843
- Intel有奖下载之七,礼品多多等你拿!
- 下载有礼:2017年泰克亚太专家大讲堂第一期:大数据与云存储环境下的高速总线技术演进
- 泰克 4200A-SCS 带您走进半导体材料测试世界 下载赢好礼!
- 报名有礼:【TI C2000在实时控制系统中的新特性】网络直播诚邀您参与!
- 有奖直播:超小型封装 TI MSPM0 MCU 可优化设计空间,实现更多可能
- 有奖活动:晒出你的电子心头好
- 【EEWORLD第六届社区明星人物】8月明星人物
- 辛苦一个月,EEWORLD社区3月明星人物出台喽!
- ADI•世健工业嘉年华—有奖直播:ADI赋能工业4.0—助力PLC/DCS技术创新