STM32F103ZET6ブザー実験
序文
STM32の学習は3つのバージョンに分けることができます。
1.登録バージョン
2.ライブラリ関数バージョン
3.HALライブラリバージョン
個人的な理由により、STM32を学習するためにライブラリ関数バージョンを選択します。
ヒント:ソフトウェアのインストールなどの問題は説明されません!!!
1.回路図
回路図は、PB8がBEEPに対応することを示しています。
第二に、プログラムのソースコード
1.beep.h
コードは次のように表示されます。
#ifndef _BEEP_H
#define _BEEP_H
void Beep_Init(void);
#endif
2.beep.c
コードは次のように表示されます。
#include "beep.h"
#include "stm32f10x.h"
void Beep_Init(void)
{
GPIO_InitTypeDef GPIO_Initstr;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB , ENABLE);//时钟使能
GPIO_Initstr.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_Initstr.GPIO_Pin=GPIO_Pin_8;
GPIO_Initstr.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_Initstr);
GPIO_ResetBits(GPIOB, GPIO_Pin_8);//初始化蜂鸣器关闭
}
3.main.c
コードは次のように表示されます。
#include "stm32f10x.h"
#include "led.h"
#include "delay.h"
#include "beep.h"
int main(void)
{
delay_init();
LED_Init();
Beep_Init();
while(1)
{
//库函数
GPIO_ResetBits(GPIOB, GPIO_Pin_5);//LED1点亮,蜂鸣器不响
GPIO_SetBits(GPIOE, GPIO_Pin_5);
GPIO_ResetBits(GPIOB, GPIO_Pin_8);
delay_ms(300);
GPIO_SetBits(GPIOB, GPIO_Pin_5);//LED2点亮,蜂鸣器响
GPIO_ResetBits(GPIOE, GPIO_Pin_5);
GPIO_SetBits(GPIOB, GPIO_Pin_8);
delay_ms(300);
//位操作
// PBout(5)=0;
// PEout(5)=1;
// PBout(8)=0;
// delay_ms(300);
// PBout(5)=1;
// PEout(5)=0;
// PBout(8)=1;
// delay_ms(300);
}
}
3.実験結果
LED1がオンのときはブザーがオフになり、LED2がオンのときはブザーがオンになります。
総括する
粘り強さは勝利です!!!
プログラムの実装手順は次のとおりです
。1。クロックの有効
化2.GPIOの初期化
3.ODRレジスタを制御して高レベルと低レベルを出力する