完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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功能还是 程序上哪里没有开 |
|
相关推荐
1个回答
|
|
STM8S003K3 Beep功能启用不了的原因可能有以下几点:
1. 配置错误:确保你已经正确配置了BEEP_CSR寄存器和OPTION BYTE。 2. 时钟设置问题:检查你的时钟设置是否正确,确保LSI时钟已经开启。 3. 寄存器写入问题:检查你的代码是否正确写入了BEEP_CSR寄存器。 4. 硬件问题:如果以上步骤都无法解决问题,可能是硬件本身存在问题。 针对你提供的代码,我有一些建议: 1. 确保你已经正确设置了OPTION BYTE,包括PD4复选beep功能和CKAWUSEL高低速。 2. 检查你的时钟设置,确保LSI时钟已经开启。你已经设置了CLK_ICKR=0x0d,这应该是正确的。 3. 在你的initBeep函数中,确保你已经正确写入了BEEP_CSR寄存器。你的代码中有一些语法错误,我帮你修改了一下: ```c void initBeep(void) { uchar *pointEEP = (uchar *)0x4803; uchar EEPvalue = *pointEEP; if ((EEPvalue & 0x80) == 0) { // Enable beep function BEEP_CSR |= BEEP_CSR_BEEPEN; } } ``` 4. 如果以上步骤都无法解决问题,建议检查硬件是否存在问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1683 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1582 浏览 1 评论
1013 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
703 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1627 浏览 2 评论
1892浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
675浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
538浏览 3评论
558浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
526浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 02:41 , Processed in 0.634406 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号