CH32V208 芯片 CH32V20xEVT RTC例程 时钟不跑

CH32V208 芯片? CH32V20xEVT? ?RTC例程 时钟不跑? ?

串口打印一直是◆year/month/day/week/hour/min/sec:

0-0-0? 0? 0:0:0

帮忙看一下

另外仿真测试 不会进入中断

您好,注意一下工程文件中ld文件中FLASH和RAM的大小配置以及启动文件的选择,如下图Flash和RAM大小配置为128+64,启动文件选择D8W.S这个启动文件。附件为例程,测试是没问题的,你可以下载再测试一下

icon_rar.gifCH32V208 RTC.zipimage.png


默认的是 CH32V20xEVT例程是

              FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 160K

     RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 32K

那么官网下载的 CH32V20xEVT例程 要手动修改 为?

 

FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 128K

RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 64K

      

已经使用直接使用附件的例程了,还是不行,除了把打印串口2修改为串口1  就没有更改其他了


您好,请问一下测试是在我们开发板测试还是自己做的板子,注意例程配置的RTC时钟源为LSE,检查一下你的开发板是否有外部低速晶振,若没有建议改用内部。关于FLASH和RAM的配置,64+128或32+160都可以,注意下载时选择对应的配置应用,如下图。若方便,可对开发板拍照发我看(lzs@wch.cn)一下,后续问题也可继续通过邮箱沟通

image.png


使用内部晶振? 无外挂晶振? ? ?程序做了如下修改?但是这个RTC 时间仍然不走? ??? 单片机运行其他程序正常? ?




u8 RTC_Init(void)

{

? ? u8 temp = 0;

? ? RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

? ? PWR_BackupAccessCmd(ENABLE);


? ? /* Is it the first configuration */


? ? BKP_DeInit();

? ? RCC_LSEConfig(RCC_LSE_OFF);

? ? RCC_LSICmd(ENABLE);

? ? while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET && temp < 250)

? ? {

? ? ? ? ? ? temp++;

? ? ? ? ? ? Delay_Ms(20);

? ? }

? ? if(temp >= 250)

? ? return 1;

? ? RCC_RTCCLKConfig(RCC_RTCCLKSource_LSI);

? ? RCC_RTCCLKCmd(ENABLE);

? ? RTC_WaitForLastTask();

? ? RTC_WaitForSynchro();

? //RTC_ITConfig(RTC_IT_ALR, ENABLE);

? ? RTC_ITConfig(RTC_IT_SEC, ENABLE);

? ? RTC_WaitForLastTask();

? ? RTC_EnterConfigMode();

? ? RTC_SetPrescaler(32767);

? ? RTC_WaitForLastTask();

? ? RTC_Set(2019, 10, 8, 13, 58, 55); /* Setup Time */

? ? RTC_ExitConfigMode();

? ? BKP_WriteBackupRegister(BKP_DR1, 0XA1A1);


? ? RTC_NVIC_Config();

? ? RTC_Get();


? ? return 0;

}




//#define SYSCLK_FREQ_HSE? ? HSE_VALUE

//#define SYSCLK_FREQ_48MHz_HSE? 48000000

//#define SYSCLK_FREQ_56MHz_HSE? 56000000

//#define SYSCLK_FREQ_72MHz_HSE? 72000000

//#define SYSCLK_FREQ_96MHz_HSE? 96000000

//#define SYSCLK_FREQ_120MHz_HSE? 120000000

//#define SYSCLK_FREQ_144MHz_HSE? 144000000

//#define SYSCLK_FREQ_HSI? ? HSI_VALUE

#define SYSCLK_FREQ_48MHz_HSI? 48000000

//#define SYSCLK_FREQ_56MHz_HSI? 56000000

//#define SYSCLK_FREQ_72MHz_HSI? 72000000

//#define SYSCLK_FREQ_96MHz_HSI? 96000000

//#define SYSCLK_FREQ_120MHz_HSI? 120000000

//#define SYSCLK_FREQ_144MHz_HSI? 144000000






您好,附件为参考例程,时钟源已根据你的要求均改为使用内部,测试没问题,你可以参考一下。你的代码中,如下图2还是配置LSE,可以改成LSI试一下。

icon_rar.gifCH32V208 RTC.zip

image.png

图1

image.png

图2


已经测试正常 感谢


只有登录才能回复,可以选择微信账号登录