OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2706|回复: 10

求求帮看下蜂鸣器实验 自己编的。问题在于不能间断响,它一直响。

[复制链接]

1

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-7-1
在线时间
3 小时
发表于 2019-8-14 11:39:20 | 显示全部楼层 |阅读模式
2金钱
主函数#include "stm32f10x.h"

#include "beep.h"
#include "delay.h"
int main(void)
{BEEP_Init();

while(1)
{GPIO_SetBits(GPIOB,GPIO_Pin_5);
  delay_ms(500);
  GPIO_ResetBits(GPIOB,GPIO_Pin_5);
  delay_ms(500);
}}

头文件
#ifndef __BEEP_H
#define __BEEP_H
void BEEP_Init(void);
#endif

源文件#include "beep.h"
#include "stm32f10x.h"
void BEEP_Init(void)
{GPIO_InitTypeDef GPIO_InitTypeStr;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
    GPIO_InitTypeStr.GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitTypeStr.GPIO_Pin=GPIO_Pin_8;
  GPIO_InitTypeStr.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitTypeStr);
GPIO_SetBits(GPIOB,GPIO_Pin_8);}

最佳答案

查看完整内容[请看2#楼]

一直响是因为你蜂鸣器初始化的时候PB8是高,然后蜂鸣器开始发声,后面你拉低的是PB5,不是PB8所以才会一直响。PB5改成PB8就好了吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

59

主题

196

帖子

0

精华

高级会员

Rank: 4

积分
770
金钱
770
注册时间
2018-5-3
在线时间
192 小时
发表于 2019-8-14 11:39:21 | 显示全部楼层
一直响是因为你蜂鸣器初始化的时候PB8是高,然后蜂鸣器开始发声,后面你拉低的是PB5,不是PB8所以才会一直响。PB5改成PB8就好了吧
回复

使用道具 举报

0

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
710
金钱
710
注册时间
2019-3-5
在线时间
168 小时
发表于 2019-8-14 11:59:14 | 显示全部楼层
GPIO_Pin_5,GPIO_Pin_8  看看是不是這裡
回复

使用道具 举报

4

主题

231

帖子

0

精华

高级会员

Rank: 4

积分
755
金钱
755
注册时间
2018-12-7
在线时间
131 小时
发表于 2019-8-14 12:02:18 | 显示全部楼层
GPIO_InitTypeStr.GPIO_Pin=GPIO_Pin_8;
GPIO_SetBits(GPIOB,GPIO_Pin_8);}改成5
回复

使用道具 举报

8

主题

182

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2017-3-8
在线时间
114 小时
发表于 2019-8-14 15:39:27 | 显示全部楼层
你这里头俩管脚哪个是用来控制你蜂鸣器的。。。
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-7-1
在线时间
3 小时
 楼主| 发表于 2019-8-14 15:49:39 | 显示全部楼层
哦哦谢谢各位 改了 查了原理图是PB8;但是还是不行
DTR电平置低(-3--12V),复位
RTS置高(+3-+12V),选择进入BootLoader
...延时100毫秒
DTR电平变高(+3-+12V)释放复位
RTS维持高
开始连接...4, 接收到:79 1F
在串口COM5连接成功@460800bps,耗时937毫秒
芯片内BootLoader版本号:2.2
芯片PID:00000414  STM32F10xxx_High-density
读出的选项字节:
A55AFF00FF00FF00FF00FF00FF00FF00
96位的芯片唯一序列号:
[35FFD5055046363228840543]
[05D5FF35 32364650 43058428]
芯片FLASH容量为512KB
芯片SRAM容量为65535KB(此信息仅供参考,新版本芯片已不包含此信息)
开始全片擦除(全片擦除时间会比较长,请耐心等候!)
全片擦除成功
DTR电平置低(-3--12V),复位
RTS置高(+3-+12V),选择进入BootLoader
...延时100毫秒
DTR电平变高(+3-+12V)释放复位
RTS维持高
开始连接...4, 接收到:79 1F
在串口COM5连接成功@460800bps,耗时719毫秒
芯片内BootLoader版本号:2.2
芯片PID:00000414  STM32F10xxx_High-density
读出的选项字节:
A55AFF00FF00FF00FF00FF00FF00FF00
96位的芯片唯一序列号:
[35FFD5055046363228840543]
[05D5FF35 32364650 43058428]
芯片FLASH容量为512KB
芯片SRAM容量为65535KB(此信息仅供参考,新版本芯片已不包含此信息)
第813毫秒,已准备好
共写入1KB,进度100%,耗时1266毫秒
成功从08000000开始运行
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-7-1
在线时间
3 小时
 楼主| 发表于 2019-8-14 15:54:49 | 显示全部楼层
不明白为什么头文件要位操作 我直接用函数setbits resetbits不行吗
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-7-1
在线时间
3 小时
 楼主| 发表于 2019-8-14 15:56:36 | 显示全部楼层
为什么要#define BEEP PBout(8)
回复

使用道具 举报

109

主题

5564

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
10571
金钱
10571
注册时间
2017-2-18
在线时间
1914 小时
发表于 2019-8-14 18:17:05 | 显示全部楼层
酸酸酸酸饿 发表于 2019-8-14 15:54
不明白为什么头文件要位操作 我直接用函数setbits resetbits不行吗

可以~~
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2019-4-5
在线时间
5 小时
发表于 2019-8-15 16:09:31 | 显示全部楼层
PB8好像一直是高着的,你看下你的原理图,beep连接的是哪一个引脚,pb5是间断的
回复

使用道具 举报

1

主题

7

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2019-7-1
在线时间
3 小时
 楼主| 发表于 2019-8-16 15:39:28 | 显示全部楼层
我查出来了 是因为我没有调用delay_init()
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表