打印
[STM8]

STM8S003K3 BEEP_CSR 写不动 Beep功能启用不了

[复制链接]
2234|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
z4057|  楼主 | 2015-8-11 12:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 z4057 于 2015-8-11 12:40 编辑

STM8S003K3  BEEP_CSR 写不动 Beep功能启用不了

ST Visual Programmer OPTION BYTE里也没有 PD4复选beep功能

CKAWUSEL  高低速都试过了
LSI_EN       开关都试过了
CLK_ICKR=0x0d;   // 上电后 LSI 开启了


void initBeep(void)
{
   pointEEP=(uchar *)0x4803;  
    EEPvalue=*pointEEP;
    if((EEPvalue&0x80)==0)
    {
      do
     {
        FLASH_DUKR=0xae;
        FLASH_DUKR=0x56;
     }while((FLASH_IAPSR&0x08)==0);//(!(FLASH_IAPSR&0x08));
     FLASH_CR2=0x80;
     FLASH_NCR2=0x7f;
  
    *((uchar *)0x4803)=0x80;
    //  while((FLASH_IAPSR&0x04)==0);
    *((uchar *)0x4804)=0x7f;
  
    while((FLASH_IAPSR&0x04)==0);//(!(FLASH_IAPSR&0x04));
                              //bit7 NC =0;
                              //bit6 HVOFF:高压结束标志0=HV开,开始真正的编程;1=HV关,高压结束
                              //bit5~4 NC =0;
                              //bit3 DUL  :EEP解锁标志 0=DATA EEPROM写保护使能;1=不能写DATA EEPROM区,需要通过FLASH_DUKR 写0x56+0xae 来解除 硬件置位;软件清0xae
                              //bit2 EOP  :编程结束标志0=没有EOP事件发生;1=有EOP事件发生:如果FLASH_CR1中的IE=1;将有中断产生
                              //bit1 PUL  :快速程序存储结束标志0=主程序写保护使能;1=需要通过FLASH_PUKR 来解除 硬件置位,软件清0
                              //bit0 WR_PG_DIS:试图向被保护页进行写操作的标志;0=没有WR_PG_DIS事件发生;1=有事件发生 如果IE=1则会产生中断
     FLASH_IAPSR&=0xf7;
   }

   BEEP_CSR=0x0e;    //0x50f3  0x1f  BEEP控制/状态寄存器
                             //bit7~6  BEEPSEL[1~0]:蜂鸣器频率选择 00=输出Fls/(8*BEEPdiv)kHz; 01=输出Fls/(4*BEEPdiv)kHz; 1x=输出Fls/(2*BEEPdiv)kHz;
                             //bit5    BEEPEN:蜂鸣器允许位:'1'=使能蜂鸣器功能
                             //bit4~0  BEEPDIV: 蜂鸣器预分频器 0~1e >> BEEPdiv=2;3;4;...32; 0x1f不能设置 会无输出
    BEEP_CSR=0x8e; // BEEP_CSR|=0x80;
    BEEP_CSR=0xae;// BEEP_CSR|=0x20;
}

程序强行把 OPT2改为 0x80 也不行
请大家帮个忙
是 STM8S003K3 硬件上没有Beep功能还是 程序上哪里没有开

沙发
z4057|  楼主 | 2015-8-11 15:51 | 只看该作者
人工顶,没人帮忙?

使用特权

评论回复
板凳
z4057|  楼主 | 2015-8-11 21:41 | 只看该作者
再顶

使用特权

评论回复
地板
z4057|  楼主 | 2015-8-13 15:26 | 只看该作者
21IC 的高手在哪里?

使用特权

评论回复
5
amanda_s| | 2015-8-13 15:28 | 只看该作者
你的问题是BEEP_CSR寄存器改不了,还是说BEEP没有输出?
STM8S003K3的BEEP不是Alternate功能,所以不用该OPT2,OPT2是reserved。

使用特权

评论回复
6
amanda_s| | 2015-8-13 15:30 | 只看该作者
只需要直接在CSR寄存器里使能BEEP就可以了。

使用特权

评论回复
7
z4057|  楼主 | 2015-8-13 16:42 | 只看该作者
多谢amanda_s ,原来直接 BEEP_CSR=0xXX 就行 ,受以前那们的影响分步走是不行的 直接 = 但bit4~0不能全为 1 bit5必须为1 就能开启了

使用特权

评论回复
8
598330983| | 2015-8-13 16:47 | 只看该作者
你要看看那个电路啊,这个BEEP,应该是个蜂鸣器吧

使用特权

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

本版积分规则

9

主题

41

帖子

0

粉丝