STM32学习笔记(四)

   日期:2021-01-13     浏览:108    评论:0    
核心提示:STM32F103ZET6之蜂鸣器实验文章目录STM32F103ZET6之蜂鸣器实验前言一、原理图二、程序源码1.beep.h2.beep.c3.main.c三、实验结果总结前言对于STM32的学习可分为3个版本。1.寄存器版本2.库函数版本3.HAL库版本由于个人原因,选择库函数版本来进行STM32的学习。提示:软件安装等问题,不进行讲解!!!一、原理图原理图可知,PB8对应BEEP。二、程序源码1.beep.h代码如下:#ifndef _BEEP_H#define _

STM32F103ZET6之蜂鸣器实验

文章目录

  • STM32F103ZET6之蜂鸣器实验
  • 前言
  • 一、原理图
  • 二、程序源码
    • 1.beep.h
    • 2.beep.c
    • 3.main.c
  • 三、实验结果
  • 总结

前言

对于STM32的学习可分为3个版本。
1.寄存器版本
2.库函数版本
3.HAL库版本
由于个人原因,选择库函数版本来进行STM32的学习。

提示:软件安装等问题,不进行讲解!!!

一、原理图

原理图可知,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);
	}
}

三、实验结果

当LED1点亮时,蜂鸣器关闭;当LED2点亮时,蜂鸣器开启。

总结

坚持,就是胜利!!!

程序实现步骤如下:
1.时钟使能
2.GPIO初始化
3.控制ODR寄存器输出高低电平

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服