打印
[APM32F4]

【APM32F402R Micro-EVB开发板测评】+RTC电子时钟

[复制链接]
234|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

APM32F402R Micro-EVB开发板配有RTC计时器的例程,通过它有助于对RTC性能及其使用的了解。
在未配置显示器件的情况下,它是通过调试用的串口来向外输出信息。
其对调试串口的配置函数为:
void COM_Config(void)
{
USART_Config_T usartConfigStruct;
usartConfigStruct.baudRate = 115200;
usartConfigStruct.wordLength = USART_WORD_LEN_8B;
usartConfigStruct.stopBits = USART_STOP_BIT_1;
usartConfigStruct.parity = USART_PARITY_NONE;
usartConfigStruct.mode = USART_MODE_TX_RX;
usartConfigStruct.hardwareFlow = USART_HARDWARE_FLOW_NONE;
BOARD_COM_Config(COM1, &usartConfigStruct);
}

通过对该函数的分析,可了解到在使用时该如何设置串口的工作参数。
为使RTC进行工作,其配置函数为:
void RTC_Config(void)
{
RCM_EnableAPB1PeriphClock(RCM_APB1_PERIPH_PMU);
PMU_EnableBackupAccess();
RCM_EnableLSI();
while(RCM_ReadStatusFlag(RCM_FLAG_LSIRDY) == RESET);
RCM_ConfigRTCCLK(RCM_RTCCLK_LSI);
RCM_EnableRTCCLK();
RTC_WaitForSynchro();
RTC_WaitForLastTask();
RTC_ConfigPrescaler(50000);
RTC_WaitForLastTask();
RTC_ConfigCounter(0);
RTC_WaitForLastTask();
RTC_EnableInterrupt(RTC_INT_SEC);
RTC_WaitForLastTask();
NVIC_EnableIRQRequest(RTC_IRQn, 0, 0);
}

在RTC工作时,是通过中断处理函数来将计时值由串口发送出来。
其中断服务的函数内容为:
void RTC_Isr(void)
{
if(RTC_ReadIntFlag(RTC_INT_SEC))
{
uint32_t time, hour, minute, second;
time = RTC_ReadCounter();
hour = (time / 3600) % 24;
minute = (time / 60) % 60;
second = time % 60;
printf("%ldh:%ldm:%lds\r\n", hour, minute, second);
OLED_ShowNum(0,2,hour,2,16);
OLED_ShowNum(24,2,minute,2,16);
OLED_ShowNum(48,2,second,2,16);
BOARD_LED_Toggle(LED2);
RTC_ClearIntFlag(RTC_INT_SEC);
}
}

其中的OLED屏显示语句是后期添加的,以取代串口的输出。
经下载测试,其输出内容如图1所示。

图1 测试结果

在添加OLED屏的显示功能后,其主程序为:
int main(void)
{
BOARD_LED_Config(LED2);
COM_Config();
RTC_Config();
BOARD_OLED_Config();
OLED_Init();
OLED_Clear();
OLED_ShowString(0,0,"APM32F402 RTC",16);
OLED_ShowString(0,2," : :",16);
while (1)
{
}
}

经程序的下载测试,其显示效果如图2所示,说明其符合预期目标。

图2 计时效果



使用特权

评论回复
沙发
HeartbeatEcho| | 2025-7-22 23:16 | 只看该作者
嗯嗯 竟然把OLED显示的事件放到了RTC中断里面啊

使用特权

评论回复
板凳
jinglixixi|  楼主 | 2025-7-22 23:53 | 只看该作者
HeartbeatEcho 发表于 2025-7-22 23:16
嗯嗯 竟然把OLED显示的事件放到了RTC中断里面啊

可以的

使用特权

评论回复
地板
HeartbeatEcho| | 2025-7-23 10:33 | 只看该作者
看着是先写了时间,后画了标题。
为什么标题没有被刷掉啊

使用特权

评论回复
5
jinglixixi|  楼主 | 2025-7-23 11:04 | 只看该作者
HeartbeatEcho 发表于 2025-7-23 10:33
看着是先写了时间,后画了标题。
为什么标题没有被刷掉啊

定位显示时间值,所以其它位置的内容不会受影响。

使用特权

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

本版积分规则

508

主题

2911

帖子

39

粉丝