DS3231 — это программное обеспечение для работы с часами реального времени (RTC), разработанное на основе RT-Thread. Оно следует структуре RTC в RT-Thread и позволяет бесшовно переключаться между встроенным RTC чипа и внешним высокоточным DS3231 RTC. Программное обеспечение поддерживает функции часов реального времени и будильника.
Название | Описание |
---|---|
ds3231.h | Заголовочный файл |
ds3231.c | Исходный файл |
README.md | Инструкция по использованию программного обеспечения |
ds3231_datasheet.pdf | Руководство по чипу на китайском языке |
SConscript | Стандартный скрипт сборки для RT-Thread |
LICENSE | Файл лицензии |
Программное обеспечение DS3231 соответствует лицензии Apache v2.0, подробности см. в файле LICENSE.
Чтобы использовать пакет DS3231, выберите его в диспетчере пакетов RT-Thread, путь следующий:
RT-Thread online packages --->
peripheral libraries and drivers --->
[*] extren rtc drivers --->
[*] ds3231:External RTC drivers fo ds3231
Version (latest) --->
Затем обновите диспетчер пакетов RT-Thread автоматически или используйте команду pkgs --update
, чтобы обновить пакет до BSP.
Сначала необходимо инициализировать драйвер DS3231. Можно вручную вызвать функцию «rt_hw_ds3231_init()» для инициализации в потоке инициализации или напрямую использовать «INIT_DEVICE_EXPORT» для автоматической инициализации.
Примечание: если внутренний RTC чипа включён, сначала необходимо отключить внутренний RTC.
Получение текущего времени
time_t time(time_t *t)
time_t now;
now = time(RT_NULL);
Установка времени
#define RT_DEVICE_CTRL_RTC_SET_TIME 0x11 /**< set time */
rt_err_t rt_device_control(rt_device_t dev, int cmd, void *arg);
Получение времени будильника
#define RT_DEVICE_CTRL_RTC_GET_ALARM 0x12 /**< get alarm */
rt_err_t rt_device_control(rt_device_t dev, int cmd, void *arg);
Настройка времени будильника
#define RT_DEVICE_CTRL_RTC_SET_ALARM 0x13 /**< set alarm */
rt_err_t rt_device_control(rt_device_t dev, int cmd, void *arg);
Предоставление интерфейса для получения внутренней температуры
float ds3231_get_temperature(void);
Для более подробной информации обратитесь к исходным кодам «/components/drivers/rtc.c» и «/components/drivers/alarm.c».
/*msh получение времени*/
msh >date
Sun Mar 1 12:01:13 2020
........
/*msh установка времени*/
msh >date 2020 03 01 20 00 00
msh >date
Sun Mar 1 20:00:03 2020
........
/*finsh получение времени*/
finsh >list_date()
Sun Mar 1 20:17:13 2020
........
/*finsh установка времени*/
finsh >set_date(2020,3,2)
0, 0x00000000
finsh >set_time(12,0,0)
0, 0x00000000
finsh >list_date()
Mon Mar 2 12:00:04 2020
........
/*msh печать температуры*/
msh >list_ds31_temp
ds3231 temperature: [29.0C]
........
/*finsh печать температуры*/
finsh >list_ds31_temp()
ds3231 temperature: [29.0C]
При использовании RTC-фреймворка RT-Thread имя устройства RTC зарегистрировано как «rtc», обратите внимание, что встроенный RTC чипа должен быть отключён заранее.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )