完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
前言
对于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寄存器输出高低电平。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1609 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1540 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
681 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1587 浏览 2 评论
1861浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
528浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
503浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 01:33 , Processed in 0.704449 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号