日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32F030控制蜂鸣器

發布時間:2025/6/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32F030控制蜂鸣器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

(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_UpdateTIM_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控制蜂鸣器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。