打印
[STM8]

stm8l beep 不能工作啥子原因呢?

[复制链接]
6643|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
配置完BEEP

BEEP_Cmd(ENABLE);

BEEP没有输出什么原因呢?
沙发
lzymcu| | 2010-11-23 11:50 | 只看该作者
在option选项中,需要把此IO配置成beep

使用特权

评论回复
板凳
无情剑客|  楼主 | 2010-11-23 11:58 | 只看该作者
IAR中 stm8l 怎么设置???

使用特权

评论回复
地板
zxd_hifi| | 2010-11-23 12:03 | 只看该作者
同样的问题,求解:
cpu:STM8L152C6T6使用BEEP功能,配置后不能启动BEEP,BEEP无输出波形,尝试读取BEEP的CSR2值为0x1F。
代码:楼下附

使用特权

评论回复
5
zxd_hifi| | 2010-11-23 12:05 | 只看该作者
void Beep_Init(void)
{//BEEP初始化代码
          uint8_t temp;
       
        CFG->GCR = CFG_GCR_SWD;//由于BEEP未启动,尝试关闭调试接口,结果还是不行
        BEEP_DeInit();
          GPIO_Init(BEEP_PORT, BEEP_PIN, GPIO_Mode_Out_PP_Low_Slow);
        CLK_BEEPClockConfig(CLK_BEEPCLKSource_LSI); //内部低速时钟在另外的地方开启了
//        BEEP_LSClockToTIMConnectCmd(ENABLE);
        BEEP_LSICalibrationConfig(37000);
        BEEP_Init(BEEP_Frequency_1KHz);
        BEEP_Cmd(ENABLE);
        temp = BEEP->CSR2;
        printf("\r\nThe BEEP SCR2 val is:%x",temp);
}

使用特权

评论回复
6
zxd_hifi| | 2010-11-23 12:11 | 只看该作者
问题:
1:在stm8S系列中,有关于BEEP功能IO映射配置,在stml152c6中未找到如此寄存器?而在这里是否需要配置呢???
2:若开启BEEP是否需要关闭调试接口???
     见数据手册上描述有(page32):When SWIM mode is enabled, the SWIM pin cannot be used as general purpose I/O.但是关闭后仍然不行。
3:其次发现固件库里面有一个bug:在打开BEEP到tim2的校准的时候,库函数错误的写了CSR2,根据数据手册正确的应该是CSR1才对吧。固件库代码:
void BEEP_LSClockToTIMConnectCmd(FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Enable the BEEP peripheral */
    BEEP->CSR2 |= BEEP_CSR1_MSR;//此处是否是错误了呢????
  }
  else
  {
    /* Disable the BEEP peripheral */
    BEEP->CSR2 &= (uint8_t)(~BEEP_CSR1_MSR);
  }
}

有用过的朋友看到请赐教,谢谢!
麻烦版主看到请帮忙分析。在线等待!

使用特权

评论回复
7
无情剑客|  楼主 | 2010-11-25 10:16 | 只看该作者
香版主是不是问题太简单了?
帮忙看看什么原因好吗???

使用特权

评论回复
8
香水城| | 2010-11-25 11:02 | 只看该作者
不好意思,俺还没有玩过这个东西。

使用特权

评论回复
9
无情剑客|  楼主 | 2010-11-25 11:21 | 只看该作者
谢谢!!香版主

使用特权

评论回复
10
ST_ARM| | 2010-11-25 13:44 | 只看该作者
2楼说的是正确的,IAR软件是不可以做次操作,用户如果使用了ST-Link作为调试工具,可以到ST的网站上下载ST visual programmer这个软件,该软件可以对Option字节进行编程。

使用特权

评论回复
11
zxd_hifi| | 2010-11-25 14:55 | 只看该作者
:L可是问题是STM8S系列才有此选择项,此项不一定要在ide界面修改,可以在自己运行代码里面修改。但此处是STM8L152C6,此片子在Option bytes里并无关于BEEP的设置啊
连此寄存器都不能进行正确的读写,纳闷了。

使用特权

评论回复
12
vigia| | 2010-11-25 15:01 | 只看该作者
要用BEEP就一定要关掉SWIM

我刚才试了试,MS在SWIM模式下,是不能通过写CFG->GCR来关闭SWIM的,也就是说PA0仍然作为SWIM脚在工作。

LS的试试非调试模式下,BEEP是否能工作。

使用特权

评论回复
13
zxd_hifi| | 2010-11-25 15:07 | 只看该作者
非调试模式,下载代码到里面运行是否算非调试模式呢!
若是,那就试过了,并在此时曾试过,初始化这个PA0后,使用软件设置io高低是正确的。
此外还有一个问题,曾试图读取BEEP-CSR2的值,其结果为复位值0x1f并非为设定值。

使用特权

评论回复
14
无情剑客|  楼主 | 2010-11-29 16:54 | 只看该作者
本帖最后由 无情剑客 于 2010-11-29 17:03 编辑









大家看看上面两幅图片为什么地址不一样呢?到底是哪个正确啊????datasheet是刚刚从st网站上下载的。

使用特权

评论回复
15
zykzyk| | 2012-3-8 15:53 | 只看该作者
我也有同样的问题困扰。

使用特权

评论回复
16
CHANGYONG1125| | 2012-10-9 13:49 | 只看该作者
我也在问这个问题呀

使用特权

评论回复
17
CHANGYONG1125| | 2012-10-9 13:50 | 只看该作者
知道的回我Q Q 135   1032   ...359

使用特权

评论回复
18
sz189981| | 2014-8-23 16:42 | 只看该作者
请问楼主这个问题解决了吗?
我设置stm8l152C6的beep。设置过了CLK_CBEEPR,CLK_ICKCR,BEEP_CSR1和BEEP_CSR2,但还是没有波形输出。还有什么没设置吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

16

帖子

0

粉丝