完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言
蜂鸣器和点亮LED灯的大致步骤差不多,都使能时钟,初始化IO口,然后加高低电平设置延时就可以。如果学了如何点亮LED灯之后能够自己写出蜂鸣器实验的代码,那就差不多算是掌握了前面所学的知识了。 蜂鸣器实验 这次蜂鸣器实验我跟着视频来的,大概看了下正点原子的思路然后自己写的代码,用的库函数实现的功能,代码改的是我的这篇文章的代码。[1]用STM32点亮第一个LED灯-用库函数实现 因为也没有什么新知识,所以我就直接贴代码片吧,然后在代码中注释思路。 首先还是建立一个HARDWARE文件夹,然后添加到路径,分别建一个BEEP.c和BEEP.h的文件方便等会写代码,步骤基本同于用库函数点亮LED灯。 首先是BEEP.h #ifndef __BEEP_H #define __BEEP_H #include "sys.h" #define BEEP PBout(8) //这里宏定义了一个位带操作,等会直接可以用BEEP=0或1控制蜂鸣器的高低电平 void BEEP_Init(void); //基本和LED.h相同 #endif 然后是BEEP.c #include "BEEP.h" //调用BEEP.h库函数 #include "stm32f10x.h" //调用...库函数 void BEEP_Init(void) //定义BEEP_Init初始化函数 { GPIO_InitTypeDef GPIO_InitStruct; //定义一个结构体指针GPIO_InitStruct(名字可以换) RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//调用时钟势能函数 GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP; //推挽输出 GPIO_InitStruct.GPIO_Pin=GPIO_Pin_8; //pin是5 GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; //速度50MHz GPIO_Init(GPIOB,&GPIO_InitStruct); //调用GPIO初始化函数 GPIO_ResetBits(GPIOB,GPIO_Pin_5); //输出0,关闭蜂鸣器 } 最后是main函数 #include "stm32f10x.h" #include "BEEP.h"//调用GPIO口初始化函数 #include "delay.h" //调用延时函数 int main(void) { delay_init(); BEEP_Init(); while(1){ BEEP=0; delay_ms(300); BEEP=1; delay_ms(300); } } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1936浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
729浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
569浏览 3评论
594浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
552浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 17:31 , Processed in 1.172726 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号