前言:
当AWTK界面被应用到嵌入式平台(如STM32中),需要提供并设置获取当前日期和时间的函数,否则相关的功能(如时钟控件)将无法正常工作。
一、函数
date_time_global_init_ex(&s_date_time_vtable);
二、代码实现:
平台:STM32
物联网操作系统:RT_Thread
编译:IAR
此处注册RTC设备:略
RTC获取时间部分
RTC.c
/** @brief RTC设备的名称 */
#define RTC_DEVICE_NAME "RTC"
/** @brief 配置RTC设备硬件时间直接存储、使用当地时间 */
#define CONFIG_RTC_TIME_IS_LOCAL (0)
// Table of month length (in days) for the Un-leap-year
PRIVATE const bf_uint8_t s_mdaysUnleapYear[] =
{
0U, 31U, 28U, 31U, 30U, 31U, 30U, 31U, 31U, 30U, 31U, 30U, 31U
};
// Table of month length (in days) for the Leap-year
PRIVATE const bf_uint8_t s_mdaysLeapYear[] =
{
0U, 31U, 29U, 31U, 30U, 31U, 30U, 31U, 31U, 30U, 31U, 30U, 31U
};
/**
* @brief RTC时间数据的类型定义
*/
typedef struct st_rtc_time
{
bf_uint16_t year; /**< 年,例如2016 */
bf_uint16_t month; /**< 月, (1-12) */
bf_uint16_t day; /**< 日, (1-31) */
bf_uint16_t hour; /**< 小时, (0-23) */
bf_uint16_t minute; /**< 分钟, (0-59) */
bf_uint16_t second; /**< 秒, (0-59) */
} st_rtc_time_t, *pst_rtc_time_t;