需要注意的是,使用了库函数的模板就不能胡乱套用寄存器的操作,之前还想放个大招结果出丑了,这里的实验要求是绿灯亮,蜂鸣器响,红灯亮,蜂鸣器停止,蜂鸣器响起间隔半秒,led的文件我这里就不给出了,主要放出beep的文件吧,这里操作的是PF8口。
1.beep.h
#ifndef __BEEP_H
#define __BEEP_H
#include "sys.h"
#define BEEP PFout(8)
void beep_init(void);
#endif
2.beep.c
#include "beep.h"
void beep_init()
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
GPIO_Init(GPIOF, &GPIO_InitStructure);
GPIO_SetBits(GPIOF, GPIO_Pin_8);
}
3.main.c
#include "stm32f4xx.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "beep.h"
int main(void)
{
uart_init(115200);
delay_init(84);
led_init();
beep_init();
while(1){
GPIO_ResetBits(GPIOF, GPIO_Pin_9);
GPIO_SetBits(GPIOF, GPIO_Pin_10);
GPIO_ResetBits(GPIOF, GPIO_Pin_8);
delay_ms(500);
GPIO_SetBits(GPIOF, GPIO_Pin_9);
GPIO_ResetBits(GPIOF, GPIO_Pin_10);
GPIO_SetBits(GPIOF, GPIO_Pin_8);
delay_ms(500);
}
}
上一篇:STM32蜂鸣器-寄存器
下一篇:STM32跑马灯-寄存器
推荐阅读最新更新时间:2024-11-12 16:07
设计资源 培训 开发板 精华推荐
- 使用 ROHM Semiconductor 的 BD4733 的参考设计
- AKD4563A,AK4563A 16 位、4 通道 A/D 和 2 通道 D/A 转换器评估板
- AD5343 并行接口、双电压输出、12 位 DAC 的典型应用
- 使用 ON Semiconductor 的 NCP1216A 的参考设计
- EVAL-AD7171EBZ,用于仪表的 AD7171、16 位、125SPS ADC 的评估板
- 使用 Analog Devices 的 LT1054CSW 的参考设计
- ADA4610-2ARMZ 正峰值检波器运算放大器的典型应用电路
- 有源钳位正激AC-DC电源基础仿真电路
- LTC2908ITS8-A1、12V、5V、3.3V、2.5V、1.8V、1V六电源监视器的典型应用电路
- LT1055 的典型应用 - 精密、高速、JFET 输入运算放大器