【【萌新的STM32学习-19-蜂鸣器实验】】

萌新的STM32学习-19-蜂鸣器实验

STM32在正点原子的视频中并未讲述关于蜂鸣器的实验,我们自己探究一下作为简单的HAL库入门
蜂鸣器每隔 300ms 响或者停一次。LED0 每隔 300ms 亮或者灭一次。LED0 亮的时候蜂鸣器不叫,而 LED0 熄灭的时候,蜂鸣器叫。
在这里插入图片描述
在这里插入图片描述
他每次都会做出一个宏定义
在这里插入图片描述
在这里插入图片描述
说实话 要不是写出来为了所谓的逻辑整洁感
我都觉得这个define 毫无意义,不如直接命名清晰
然后下面是把beep亮灯封装在一个函数里面 让人少直接调用寄存器更加简洁
在这里插入图片描述

/*** @brief 初始化 BEEP 相关 IO 口, 并使能时钟* @param 无* @retval 无*/void beep_init(void){ GPIO_InitTypeDef gpio_init_struct;BEEP_GPIO_CLK_ENABLE(); /* BEEP 时钟使能 */ 
gpio_init_struct.Pin = BEEP_GPIO_PIN; /* 蜂鸣器引脚 */ 
gpio_init_struct.Mode = GPIO_MODE_OUTPUT_PP; /* 推挽输出 */ 
gpio_init_struct.Pull = GPIO_PULLUP; /* 上拉 */



 gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH; /* 高速 */
 
 HAL_GPIO_Init(BEEP_GPIO_PORT, &gpio_init_struct); /* 初始化蜂鸣器引脚 */
  BEEP(0); /* 关闭蜂鸣器 */}
  

main.c

int main(void){
HAL_Init(); /* 初始化 HAL 库 */ 
sys_stm32_clock_init(RCC_PLL_MUL9); /* 设置时钟,72M */
 delay_init(72); /* 初始化延时函数 */
  led_init(); /* 初始化 LED */ 
  beep_init(); /* 初始化蜂鸣器 */
   while (1) { LED0(0);
    BEEP(0); delay_ms(300);
     LED0(1); BEEP(1); 
     delay_ms(300); }}

这就是蜂鸣器实验 给人掌握的了解HAL库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值