切换到宽版
  • 1607阅读
  • 2回复

[STM]STM8学习之——BEEP资源 [复制链接]

上一主题 下一主题
离线zeze10000
 

发帖
2858
M币
8559
专家
35
粉丝
112
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-07-14
今天我们来学习beep资源。
beep,也就是蜂鸣器。
蜂鸣器一般分两种,有源蜂鸣器和无缘蜂鸣器。
有源蜂鸣器是内部带频率发生器的,能发出特定的声音,只要供电就行。
无源蜂鸣器就是不带频率发生器的,需要外部提供频率驱动信号,蜂鸣器的声调由驱动信号的频率决定,能发出不同的声音,甚至是音乐。

beep资源就是一种简单配置就能输出蜂鸣器驱动信号的外设资源。简单到只需要配置一个寄存器。

先看看结构

这个时钟来源跟AWU一样,可以由外部时钟分频或者内部LSI提供。
时钟选定后成为LS时钟,然后经过两次分频得到beep时钟。

配置流程如下

这里的校准频率一般不需要。

看看需要配置的寄存器

这个寄存器就控制了beep输出的频率和开关,十分方便。

当然beep引脚为第二功能,想使用还得配置选项字节和端口模式。
beep输出也要经过驱动电路才能驱动蜂鸣器,简单的就是通过三极管驱动。
beep也可以当做一个时钟输出引脚用,方便的得到频率较低的时钟源。

下面是几种时钟频率的输出

1K


8K


10K


频率有些误差,有些是因为计算不能整除,有些是内部RC震荡的误差。

很简单,还是贴上代码。
  1. #include<iostm8s105k4.h>
  2. void init()
  3. {
  4.   PD_DDR_DDR4=1;        //输出口配置
  5.   PD_CR1_C14=1;
  6.   PD_CR2_C24=1;
  7.   
  8.   BEEP_CSR=0x61;        //BEEP配置
  9. }
  10. int main( void )
  11. {
  12.   init();
  13.   while(1);
  14. }

THE END!
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共3条打赏M币+30
2545889167 M币 +9 - 2018-07-15
66ok66 M币 +8 優秀文章 2018-07-15
jsycwnw M币 +13 不会的羡慕+支持 2018-07-14
离线jsycwnw

发帖
10363
M币
29005
专家
396
粉丝
302
只看该作者 1楼 发表于: 2018-07-14
请登录后查看
离线触景情伤

发帖
3862
M币
28
专家
4
粉丝
70
只看该作者 2楼 发表于: 2018-07-15
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个