作者共發了1篇帖子。 內容轉換:不轉換▼
 
點擊 回復
471 0
【STM32入门级程序11】蜂鸣器
一派護法 十九級
1樓 發表于:2016-6-30 16:52
#include <stm32f10x.h>
void delay(void)
{
 uint32_t i;
 for (i = 0; i < 8000000; i++);
}
void delay_short(void)
{
 uint32_t i;
 for (i = 0; i < 8000; i++); // i的最大值决定蜂鸣器的音调
}
void beep(void)
{
 uint16_t i;
 for (i = 0; i < 1000; i++)
 {
  GPIOB->ODR |= GPIO_Pin_8;
  delay_short();
  GPIOB->ODR &= ~GPIO_Pin_8;
  delay_short();
 }
}
int main(void)
{
 GPIO_InitTypeDef init;
 init.GPIO_Pin = GPIO_Pin_8;
 init.GPIO_Speed = GPIO_Speed_50MHz;
 init.GPIO_Mode = GPIO_Mode_Out_OD; // 因为蜂鸣器是接在三极管上的,所以输出模式必须设为开漏输出
 
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
 GPIO_Init(GPIOB, &init);
 
 while (1)
 {
  beep();
  delay();
 }
}

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
(快捷鍵:Ctrl+Enter)
 

本帖信息

點擊數:471 回複數:0
評論數: ?
作者:巨大八爪鱼
最後回復:巨大八爪鱼
最後回復時間:2016-6-30 16:52
 
©2010-2024 Arslanbar Ver2.0
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。