嵌入式软件开发 STM32F407 蜂鸣器 寄存器版

硬件

正点原子探索者STM32F407ZGT6
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

软件

1、Keil uVision5

STM32F4xx中文参考手册

在这里插入图片描述

//使能时钟
RCC->AHB1ENR |= 1<<5;

在这里插入图片描述

//清零
GPIOF->MODER &= ~(0X3<<16);
//通用输出模式
GPIOF->MODER |= (1<<16);

在这里插入图片描述
在这里插入图片描述

//输出推挽
GPIOF->OTYPER &= ~(1<<8);

在这里插入图片描述

//清零
GPIOF->OSPEEDR &= ~(0X3<<16);
//端口输出速度:快速50MHz
GPIOF->OSPEEDR |= (0X2<<16);

在这里插入图片描述
在这里插入图片描述

//清零
GPIOF->PUPDR &= ~(0X3<<16);
//上拉
GPIOF->PUPDR |= (1<<16);

在这里插入图片描述
在这里插入图片描述

//关闭蜂鸣器:低电平
GPIOF->BSRRH |= (1<<8);

在这里插入图片描述

//关闭蜂鸣器:低电平
GPIOF->ODR &= ~(1<<8);

代码

1、beep.c中关键代码

void BEEP_Init(void)
{    	
	//使能时钟
	RCC->AHB1ENR |= (1<<5);
	
	//PF8
	//清零
	GPIOF->MODER &= ~(0X3<<16);
	//通用输出模式
	GPIOF->MODER |= (1<<16);
	
	//输出推挽
	GPIOF->OTYPER &= ~(1<<8);
	
	//清零
	GPIOF->OSPEEDR &= ~(0X3<<16);
	//端口输出速度:快速50MHz
	GPIOF->OSPEEDR |= (0X2<<16);
	
	//清零
	GPIOF->PUPDR &= ~(0X3<<16);
	//上拉
	GPIOF->PUPDR |= (1<<16);
	
	//关闭蜂鸣器:低电平
	GPIOF->BSRRH |= (1<<8);
//	GPIOF->ODR &= ~(1<<8);
	
	//打开蜂鸣器:高电平
//	GPIOF->BSRRL |= (1<<8);
//	GPIOF->ODR |= (1<<8);
}

2、test.c中关键代码

int main(void)
{ 
	Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
	delay_init(168);		//初始化延时函数
	LED_Init();				//初始化LED时钟  
	BEEP_Init();         	//初始化蜂鸣器端口
	while(1)
	{
		LED0=0;
		LED1=0;
		BEEP=0;		  
		delay_ms(300);
		LED0=1;
		LED1=1;	  
		BEEP=1;  
		delay_ms(300);
	}	
}

代码下载

嵌入式软件开发 STM32F407 蜂鸣器 LED灯 寄存器版

参考链接

三极管NPN和PNP一点小知识

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaolan@

亲,打赏随意

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值