STM8 BEEP真是奇怪啊,非得复位一下才行。
时间:10-02
整理:3721RD
点击:
最近调了下STM8的beep,感觉比较麻烦,现在波形是有了,但是程序下载运行后,还的再复位一次才行,求大神指点。
程序如下:
先用STVP将芯片全部清空,用IAR单步仿真,
第一次全速运行,AFR7没有变化,第二次在仿真就好了,好纠结。
但是这个COO输出都没有设置option byte 可以直接输出波形,
STM8是不是有什么问题啊,
程序如下:
- #define BEEP_EN BEEP_CSR_bit.BEEPEN
- #define BEEP_fre BEEP_CSR_bit.BEEPSEL
- #define BEEP_div BEEP_CSR_bit.BEEPdiv
- void BeepInit()
- {
- do{
- FLASH_DUKR=0xae;
- FLASH_DUKR=0x56;
- }
- while(!(FLASH_IAPSR&0x08)); //flash 解锁;
-
- FLASH_CR2=0x80;
- FLASH_NCR2=0x7f;
- *((unsigned char *)(0x4803))=0x80;
- *((unsigned char *)(0x4804))=0x7f; //beep引脚使能;
-
- while(!(FLASH_IAPSR&0x04));
-
- FLASH_IAPSR=FLASH_IAPSR&0xf7;
- /*
- PD_DDR_DDR4=1;
- PD_ODR_ODR4=1;
- PD_CR1_C14=1;
- */
- BEEP_div=0x1e;
- BEEP_fre=0x01;
- BEEP_EN=1; //beep设置;
- }
先用STVP将芯片全部清空,用IAR单步仿真,
第一次全速运行,AFR7没有变化,第二次在仿真就好了,好纠结。
但是这个COO输出都没有设置option byte 可以直接输出波形,
- #define COO_EN CLK_CCOR_bit.CCOEN
- #define COO_SEL CLK_CCOR_bit.CCOSEL
- void COO()
- {
- PE_DDR_DDR0=1;
- PE_ODR_ODR0=1;
- PE_CR1_C10=1;
-
- COO_SEL=10;
- COO_EN=1;
-
- }
STM8是不是有什么问题啊,
你是用什么下载的,串口?
用的STLINK采集