97 lines
1.9 KiB
C
97 lines
1.9 KiB
C
#include "board.h"
|
|
#include "main.h"
|
|
board_t board;
|
|
|
|
void led_open(led_e led)
|
|
{
|
|
switch (led)
|
|
{
|
|
case LED_USER:
|
|
GPIO_SET(LED_USER_GPIO_Port, LED_USER_Pin);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void led_close(led_e led)
|
|
{
|
|
switch (led)
|
|
{
|
|
case LED_USER:
|
|
GPIO_RESET(LED_USER_GPIO_Port, LED_USER_Pin);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void rtc_set_default(void)
|
|
{
|
|
rtc_date_t date;
|
|
rtc_time_t time;
|
|
date.year = 25;
|
|
date.month = 1;
|
|
date.day = 1;
|
|
time.hour = 0;
|
|
time.minute = 0;
|
|
time.second = 0;
|
|
rtc_set(date, time, LL_RTC_WEEKDAY_WEDNESDAY);
|
|
}
|
|
|
|
void rtc_set(rtc_date_t date, rtc_time_t time, uint8_t weekday)
|
|
{
|
|
// Enable access to RTC
|
|
LL_PWR_EnableBkUpAccess();
|
|
LL_RCC_EnableRTC();
|
|
LL_RTC_DateTypeDef rtc_date;
|
|
LL_RTC_TimeTypeDef rtc_time;
|
|
rtc_time.Hours = time.hour;
|
|
rtc_time.Minutes = time.minute;
|
|
rtc_time.Seconds = time.second;
|
|
|
|
rtc_date.WeekDay = weekday;
|
|
rtc_date.Day = date.day;
|
|
rtc_date.Month = date.month;
|
|
rtc_date.Year = date.year;
|
|
|
|
LL_RTC_TIME_Init(RTC, LL_RTC_FORMAT_BIN, &rtc_time);
|
|
LL_RTC_DATE_Init(RTC, LL_RTC_FORMAT_BIN, &rtc_date);
|
|
|
|
// Disable access to RTC
|
|
LL_PWR_DisableBkUpAccess();
|
|
}
|
|
|
|
void rtc_update(void)
|
|
{
|
|
board.rtc_time.Hours = LL_RTC_TIME_GetHour(RTC);
|
|
board.rtc_time.Minutes = LL_RTC_TIME_GetMinute(RTC);
|
|
board.rtc_time.Seconds = LL_RTC_TIME_GetSecond(RTC);
|
|
|
|
board.rtc_date.WeekDay = LL_RTC_DATE_GetWeekDay(RTC);
|
|
board.rtc_date.Day = LL_RTC_DATE_GetDay(RTC);
|
|
board.rtc_date.Month = LL_RTC_DATE_GetMonth(RTC);
|
|
board.rtc_date.Year = LL_RTC_DATE_GetYear(RTC);
|
|
}
|
|
|
|
void led_toggle(led_e led)
|
|
{
|
|
switch (led)
|
|
{
|
|
case LED_USER:
|
|
GPIO_TOGGLE(LED_USER_GPIO_Port, LED_USER_Pin);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief 初始化显示板
|
|
*
|
|
*/
|
|
void board_init(void)
|
|
{
|
|
rtc_set_default();
|
|
}
|