RT Thread Studio創建軟件和硬件RTC工程

MCU型號:STM32F103RET6

一.配置軟件模擬RTC

1.生成一個帶串口輸出的工程文件,新建RT-Thread項目工程文件。
在這里插入圖片描述
2.查看電路圖中的串口輸出管腳,根據STMCubeMx軟件可知此串口為USART1,選擇芯片型號為STM32F103RET6,控制臺串口選擇UART1,發送腳:PB6,接收腳:PB7
在這里插入圖片描述
在這里插入圖片描述在這里插入圖片描述
3.設置下載bin文件的下載地址為:0x08000000。
在這里插入圖片描述
4.代碼編譯后下載到電路板,連上串口調試助手可看到調試信息。
在這里插入圖片描述
5.打開RT-Thread Settings設置設備驅動中的軟件模擬RTC,RTC設置如圖所示,設置完成之后,記得保存,否則設置無效。
在這里插入圖片描述
實際上是將soft_rtc.c文件添加到工程中編譯,并將宏定義RT_USING_SOFT_RTC打開。
在這里插入圖片描述
6.增加rtc的初始化代碼rtc_app.h和rtc_app_c,以及修改main函數中的代碼。

rtc_app.h

#ifndef APPLICATIONS_RTC_APP_H_
#define APPLICATIONS_RTC_APP_H_int rtc_init(void);#endif /* APPLICATIONS_RTC_APP_H_ */

rtc_app.c

#include <rtthread.h>
#include <rtdevice.h>#define RTC_NAME       "rtc"#define DBG_TAG "rtc"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>int rtc_init(void)
{rt_err_t ret = RT_EOK;rt_device_t device = RT_NULL;/*尋找設備*/device = rt_device_find(RTC_NAME);if (!device){LOG_E("find %s failed!", RTC_NAME);return RT_ERROR;}/*初始化RTC設備*/if(rt_device_open(device, 0) != RT_EOK){LOG_E("open %s failed!", RTC_NAME);return RT_ERROR;}ret = set_date(2025, 5, 6);if (ret != RT_EOK){rt_kprintf("set RTC date failed\n");return ret;}/* 設置時間 */ret = set_time(9, 15, 50);if (ret != RT_EOK){rt_kprintf("set RTC time failed\n");return ret;}return ret;
}

main.c

#include <rtthread.h>#define DBG_TAG "main"
#define DBG_LVL DBG_LOG
#include <rtdbg.h>#include <rtdevice.h>
extern int rtc_init(void);int main(void)
{int count = 1;time_t now;rtc_init();while (count++){/* 延時3秒 */rt_thread_mdelay(3000);/* 獲取時間 */now = time(RT_NULL);rt_kprintf("%s\n", ctime(&now));
//        LOG_D("Hello RT-Thread!");
//        rt_thread_mdelay(1000);}return RT_EOK;
}

7.由于RT Thread stdio創建工程的時候使用的是內部晶振,所以需要將其修改為外部晶振,查看原理圖的外部晶振大小。

在這里插入圖片描述
8.打開CubeMx_Settings配置外部晶振,配置sys。
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
生成工程后查看drv_clk.c文件可查看到clk_init函數內容已做修改。
在這里插入圖片描述
9.將stmf1xx_hal_conf.h中的HAL_UART_MODULE_ENABLED,HAL_USART_MODULE_ENABLED宏定義打開。
在這里插入圖片描述
10.編譯程序,燒錄到芯片中,查看串口日志,可查看到間隔3秒變化一次rtc時間。
在這里插入圖片描述
二.配置硬件RTC

1.接上面的工程例子,取消勾選軟件模擬RTC選項
在這里插入圖片描述
2.在board.h中開啟BSP_USING_ONCHIP_RTC宏定義,由于電路圖中沒有LSE晶振,故這里使用LSI內部晶振,開啟BSP_RTC_USING_LSI宏定義。
在這里插入圖片描述
3.由于drv_rtc.c文件中的rt_hw_rtc_register()函數和rtc.c中的rt_hw_rtc_register()函數存在沖突,所以需要刪除掉rtc.h和rtc.c文件中的rt_hw_rtc_register()函數。
在這里插入圖片描述
在這里插入圖片描述
4.配置硬件RTC,打開CubeMX_Settings配置RTC
在這里插入圖片描述
在這里插入圖片描述
5.由于重新配置了CubeMx,所以需要重新打開宏定義HAL_UART_MODULE_ENABLED和HAL_USART_MODULE_ENABLED
在這里插入圖片描述
6.編譯后燒錄到電路板中,會出現"RTC hasn’t been configured, please use command to config.",是因為未設置時間,可以調用set_rtc_time_stamp(time_t time_stamp)函數設置。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/82400.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/82400.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/82400.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

STC32G12K128-旋轉編碼器-軟件去抖

STC32G12K128-旋轉編碼器-軟件去抖 簡介代碼 簡介 EC11旋轉編碼器是一種可以連續旋轉的器件A,B,C為旋轉編碼引腳&#xff0c;帶按鍵的有D,E引腳。引腳功能&#xff1a; A&#xff1a;編碼器A相&#xff1b;B&#xff1a;編碼器B相&#xff1b;C&#xff1a;公共端-一般接到GN…

配置Jupyter Notebook環境及Token認證(Linux服務器)

配置Jupyter Notebook環境及Token認證&#xff08;Linux服務器&#xff09; 背景 在Ubuntu 18.04.6 LTS服務器&#xff08;IP: 39.105.167.2&#xff09;上&#xff0c;基于虛擬環境pytorch_env&#xff0c;通過Mac終端&#xff08;SSH&#xff09;配置Jupyter Notebook環境&…

從零開始學Flink:開啟實時計算的魔法之旅

在凌晨三點的數據監控大屏前&#xff0c;某電商平臺的技術負責人突然發現一個異常波動&#xff1a;支付成功率驟降15%。傳統的數據倉庫此時還在沉睡&#xff0c;而基于Flink搭建的實時風控系統早已捕捉到這個信號&#xff0c;自動觸發預警機制。當運維團隊趕到時&#xff0c;系…

基于k8s的Jenkins CI/CD平臺部署實踐(三):集成ArgoCD實現持續部署

基于k8s的Jenkins CI/CD平臺部署實踐&#xff08;三&#xff09;&#xff1a;集成ArgoCD實現持續部署 文章目錄 基于k8s的Jenkins CI/CD平臺部署實踐&#xff08;三&#xff09;&#xff1a;集成ArgoCD實現持續部署一、Argocd簡介二、安裝Helm三、Helm安裝ArgoCD實戰1. 添加Arg…

[C++類和對象]類和對象的引入

面向過程和面向對象 C語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函數調用來逐步解決問題 C是基于面向對象的,關注的是對象,將一件事情分成不同的對象,靠對象之間完成交互 類的引入 C語言結構體中只能定義變量,在C中,結構體不僅僅可以定義變量,而且可以定義函…

AWS之存儲服務

目錄 一、傳統存儲術語 二、傳統存儲與云存儲的關系 三、云存儲之AWS 使用場景 文件存儲 數據塊存儲 對象存儲 EBS、EFS、S3對比 EBS塊存儲 S3對象存儲 S3 使用案例 S3 存儲類 EFS文件存儲 一、傳統存儲術語 分類 接口/技術類型 應用場景特點 關系及區別 機械硬…

WPDRRC 模型:構建動態閉環的信息安全防御體系

WPDRRC 模型是一種信息安全整體架構設計模型&#xff0c;由預警&#xff08;Warning&#xff09;、保護&#xff08;Protection&#xff09;、檢測&#xff08;Detection&#xff09;、反應&#xff08;Reaction&#xff09;、恢復&#xff08;Recovery&#xff09;和反擊&…

Redis 數據類型詳解(二):Hash 類型全解析

文章目錄 一、什么是 Redis 的 Hash 類型&#xff1f;二、Hash為什么在有些時候比String好用三、常見命令1.HSET key field value2.HGET key field3.HMSET4.HMGET5.HGETALL6.HKEYS7.HVALS8.HINCRBY9.HSETNX 四、應用場景五、性能優勢六、注意事項總結 提示&#xff1a;以下是本…

Go Modules 的基本使用

在 Go Modules 項目中&#xff0c;首次運行時下載依賴包的正確流程需要根據項目情況區分處理。以下是詳細步驟和最佳實踐&#xff1a; 一、首次初始化項目的標準流程 1.1 創建項目目錄并初始化模塊 mkdir myproject && cd myproject go mod init github…

RISC-V AIA SPEC學習(五)

第六章 Interrupts for Virtual Machines(VS Level) 核心內容 1.VS級別外部中斷支持:?? ??客戶中斷文件(Guest Interrupt File)??:虛擬機的每個vCPU擁有獨立的IMSIC中斷文件,允許直接接收設備MSI。??vstopi CSR??:類似stopei,用于虛擬機內部處理最高優先級中…

【Python-Day 11】列表入門:Python 中最靈活的數據容器 (創建、索引、切片)

Langchain系列文章目錄 01-玩轉LangChain&#xff1a;從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊&#xff1a;四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain&#xff1a;從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

【AXI總線專題】-AXI-LITE總線解讀

【AXI總線專題】-AXI-LITE總線解讀 1.axi-lite概述2.信號定義Write address channelWrite data channelWrite response channelRead address channelRead data channel 3.測試4.仿真波形5.工程文件 參考手冊 《3-2-03米聯客2022版AXI4總線專題-20211123.pdf》 《IHI0022E_amba_…

在企業級項目中高效使用 Maven-mvnd

1、引言 1.1 什么是 Maven-mvnd? Maven-mvnd 是 Apache Maven 的一個實驗性擴展工具(也稱為 mvnd),基于守護進程(daemon)模型構建,目標是顯著提升 Maven 構建的速度和效率。它由 Red Hat 推出,通過復用 JVM 進程來減少每次構建時的啟動開銷。 1.2 為什么企業在構建過…

網絡字節序 - 大端

回顧主機字節序 - 大小端 發送主機將發送緩沖區中的數據按內存地址從低到高的順序發出接收主機把從網絡上接收到的數據按內存地址從底到高的順序依次保存到接收緩沖區TCP/IP 規定&#xff0c;網絡數據流應采用大端字節序&#xff0c;即低地址高字節&#xff0c;也就是說&#…

《被討厭的勇氣》書摘

阿德勒心理學考慮的不是過去的“原因”&#xff0c;而是現在的“目的”。你的朋友并不是因為不想到外面去&#xff0c;才制造出不安的情緒。是先有了“不出去”這個目的&#xff0c;之后才會為了達到這個目的而制造出不安或者恐懼之類的情緒。 個人見解&#xff1a;這是阿德勒…

打造專屬AI好友:小智AI聊天機器人詳解

打造專屬AI好友&#xff1a;小智AI聊天機器人詳解 在當下的科技熱潮中&#xff0c;AI正迅速改變著我們的生活&#xff0c;成為了科技領域的新寵。而今&#xff0c;借助開源項目的力量&#xff0c;你可以親手打造一個智能小助手——小智AI聊天機器人。它不僅是一個技術探索的窗…

如何利用爬蟲獲得1688商品詳情:實戰指南

在電商運營和市場分析中&#xff0c;獲取1688商品詳情數據是一項重要任務。本文將詳細介紹如何利用爬蟲技術獲取1688商品詳情&#xff0c;包括準備工作、爬蟲實現步驟以及注意事項。 一、準備工作 &#xff08;一&#xff09;注冊1688開放平臺賬號 在1688開放平臺注冊開發者…

如何優化系統啟動時間--基于米爾瑞薩MYD-YG2LX開發板

1.概述 MYD-YG2LX采用瑞薩RZ/G2L作為核心處理器&#xff0c;該處理器搭載雙核Cortex-A551.2GHzCortex-M33200MHz處理器&#xff0c;其內部集成高性能3D加速引擎Mail-G31 GPU(500MHz)和視頻處理單元&#xff08;支持H.264硬件編解碼&#xff09;,16位的DDR4-1600 / DDR3L-1333內…

QML 圖像變換(縮放、平移、旋轉)

目錄 引言相關閱讀基礎知識工程結構核心代碼解析示例1&#xff1a;圖像縮放&#xff08;ImageScale.qml&#xff09;代碼說明運行效果 示例2&#xff1a;圖像平移&#xff08;ImageTransform.qml&#xff09;代碼說明運行效果 示例3&#xff1a;圖像旋轉&#xff08;ImageRotat…

Linux 系統命令使用指南1

適用于 Red Hat / CentOS / Rocky Linux 等系統的基本初始化配置操作。 &#x1f512; 1. 關閉 SELinux&#xff08;臨時生效&#xff09; setenforce 0?? 注意&#xff1a;此命令僅臨時關閉 SELinux&#xff0c;重啟后可能恢復。要永久關閉&#xff0c;請修改 /etc/selinux…