淘客个人网站怎么建设现在帮人做网站赚钱吗

张小明 2026/1/19 20:40:48
淘客个人网站怎么建设,现在帮人做网站赚钱吗,前端面试官常问的问题,廊坊手机网站团队一、前言 1.RTC简介 RTC#xff08;Real Time Clock#xff0c;实时时钟#xff09;#xff0c;是一个掉电后仍然可以继续运行的独立定时器。 RTC模块拥有一个连续计数的计数器#xff0c;在相应的软件配置下#xff0c;可以提供时钟日历的功能。修改计数器的值可以重新…一、前言1.RTC简介RTCReal Time Clock实时时钟是一个掉电后仍然可以继续运行的独立定时器。RTC模块拥有一个连续计数的计数器在相应的软件配置下可以提供时钟日历的功能。修改计数器的值可以重新设置当前时间和日期。RTC还包含用于管理低功耗模式的自动唤醒单元。2.硬件架构STM32 RTC 的核心架构分为 3 层保证独立运行和低功耗备份域包含 RTC 寄存器、备份寄存器用户可存少量掉电不丢数据由 VBAT 供电主电源掉电后数据不丢失时钟模块选择 LSE/LSI 作为时钟输入经分频后驱动 RTC 计数核心中断 / 唤醒模块闹钟、周期唤醒事件触发中断可直接唤醒 CPU停止 / 待机模式无需 CPU 预运行。2.1主电源与备用电源的区别STM32 芯片的供电分为两个核心部分两者分工明确VBAT 的唯一作用是「主电源掉电时给备份域RTC 备份寄存器供电」如果完全不需要这个 “掉电保持” 功能VBAT 就失去了 “备用供电” 的意义只需让它和主电源共用同一路电即可。3 RTC功能框图RTC实时时钟会产生两路信号一个是为日历服务的秒信号还有一路为闹钟服务闹钟信号也来自于秒信号4 RTC时钟源RTC有3路时钟来源HSE8MHz/128、LSE32.768KHz、LSI40KHz。其中如果使用HSE或LSI的话当主电源掉电的话这两个始终都会受到影响RTC就无法正常工作。所以一般的通用做法是使用LSE。2个原因一是LSE不受主电源掉电的影响在BKP中二是它的频率是32768Hz正好是2^15分频容易实现。1)APB1接口用来和APB1总线相连。此单元还包含一组16位寄存器可通过APB1总线对其进行读写操作。APB1接口由APB1总线时钟驱动用来与APB1总线连接。通过APB1接口可以访问RTC的相关寄存器预分频值、计数器值、闹钟值。2)RTC预分频模块这个模块是RTC预分频模块属于后备区域VDD掉电后可以在VBAT下继续运行。包含了一个20位的可编程分频器RTC预分频器。它可编程产生 1 秒的 RTC 时间基准 TR_CLK。秒信号获取的方式 RTCCLK 32768 Hz3)32位可编程计数器这个模块也属于后备区域是一个32位的可编程计数器可被初始化为当前的系统时间。一个32位的时钟计数器4中断从图中可以看到一共有3个中断秒中断每计时1s产生一次中断。计数器溢出中断。136年才会产生溢出一般用不上。RTC闹钟中断。RCT_CN和RTC_ALR会比较相等如果相等表示闹钟时间到会产生闹钟中断二、代码需求 : 测试STM32芯片进入低功耗 - 待机模式 RTC唤醒芯片Dri_RTC.c:1初始化RTC函数2设置闹钟/** * 实时Real Time时钟 - 初始化 */ void Dri_RTC_Init(void) { // 1. 开启时钟 // ● 设置寄存器RCC_APB1ENR的PWREN和BKPEN位使能电源和后备接口时钟 RCC-APB1ENR | RCC_APB1ENR_BKPEN; RCC-APB1ENR | RCC_APB1ENR_PWREN; // ● 设置寄存器PWR_CR的DBP位使能对后备寄存器和RTC的访问。 PWR-CR | PWR_CR_DBP; // 2. 配置RTC // 配置RTC时钟源 // Enable LSE RCC-BDCR | RCC_BDCR_LSEON; // LSE is Ready while ( ( RCC-BDCR RCC_BDCR_LSERDY ) 0 ); // ● 可以选择以下三种RTC的时钟源 // ─ HSE时钟除以128 // ─ LSE振荡器时钟 // ─ LSI振荡器时钟 // RCC-BDCR ~RCC_BDCR_RTCSEL_1; // RCC-BDCR | RCC_BDCR_RTCSEL_0; RCC-BDCR | RCC_BDCR_RTCSEL_LSE; // 32.768K Hz RCC-BDCR | RCC_BDCR_RTCEN; // 配置秒信号:RTC_PRL // 配置过程 // 1. 查询RTOFF位直到RTOFF的值变为’1’ while ( ( RTC-CRL RTC_CRL_RTOFF ) 0 ) ; // 2. 置CNF值为1进入配置模式 RTC-CRL | RTC_CRL_CNF; // 3. 对一个或多个RTC寄存器进行写操作 // 32.768K Hz PRL(32768) 1HZ // 16 bit RTC-PRLL 0x7FFF; // 0x7FFF 1 0x8000 1 0000 0000 0000 000 65535 1 // 4 bit RTC-PRLH 0; // 4. 清除CNF标志位退出配置模式 RTC-CRL ~RTC_CRL_CNF; // 5. 查询RTOFF直至RTOFF位变为’1’以确认写操作已经完成。 while ( ( RTC-CRL RTC_CRL_RTOFF ) 0 ) ; } /** * 实时Real Time时钟 - 设定闹钟 */ void Dri_RTC_SetAlarm(uint32_t sec) { // 配置闹钟信号 // 配置RTC_CNT // 配置RTC_ALR // 1. 查询RTOFF位直到RTOFF的值变为’1’ while ( ( RTC-CRL RTC_CRL_RTOFF ) 0 ) ; // 2. 置CNF值为1进入配置模式 RTC-CRL | RTC_CRL_CNF; // 3. 对一个或多个RTC寄存器进行写操作 RTC-CNTL 0; RTC-CNTH 0; RTC-ALRL sec; // Low 16 bit RTC-ALRH sec 16; // High 16 bit // 4. 清除CNF标志位退出配置模式 RTC-CRL ~RTC_CRL_CNF; // 5. 查询RTOFF直至RTOFF位变为’1’以确认写操作已经完成。 while ( ( RTC-CRL RTC_CRL_RTOFF ) 0 ) ; }main函数待机模式常规代码以及rtc设置闹钟函数#include USART.h #include SysTick.h #include stm32f10x.h #include LED.h #include stdio.h #include KEY.h #include Dri_RTC.h /** * 需求 : 测试STM32芯片进入低功耗 - 待机模式 */ /** * 待机模式 */ void enter_standby_mode() { // 深睡眠 SCB-SCR | SCB_SCR_SLEEPDEEP; // 掉电 PWR-CR | PWR_CR_PDDS; // 清除唤醒标志位 PWR-CR | PWR_CR_CWUF; // 使能唤醒引脚 //PWR-CSR | PWR_CSR_EWUP; __wfi(); } /** * 停止模式 */ void enter_stop_mode() { // 开启时钟 RCC-APB1ENR | RCC_APB1ENR_PWREN; // 深睡眠 SCB-SCR | SCB_SCR_SLEEPDEEP; // 掉电 PWR-CR ~PWR_CR_PDDS; // 低功耗 PWR-CR | PWR_CR_LPDS; __wfi(); } /** * 睡眠模式 */ void enter_sleep_mode() { // 浅睡眠 SCB-SCR ~SCB_SCR_SLEEPDEEP; SCB-SCR ~SCB_SCR_SLEEPONEXIT; // 立即进入睡眠 //SCB-SCR | SCB_SCR_SLEEPONEXIT; // 所有中断程序处理完后再进入睡眠 __wfi(); } void system_clock_reset(void) { __IO uint32_t StartUpCounter 0, HSEStatus 0; /* Enable HSE */ RCC-CR | ((uint32_t)RCC_CR_HSEON); do { HSEStatus RCC-CR RCC_CR_HSERDY; StartUpCounter; } while((HSEStatus 0) (StartUpCounter ! HSE_STARTUP_TIMEOUT)); /* PLL configuration: PLLCLK HSE * 9 72 MHz */ RCC-CFGR (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL)); RCC-CFGR | (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9); /* Enable PLL */ RCC-CR | RCC_CR_PLLON; /* Wait till PLL is ready */ while((RCC-CR RCC_CR_PLLRDY) 0) { } /* Select PLL as system clock source */ RCC-CFGR (uint32_t)((uint32_t)~(RCC_CFGR_SW)); RCC-CFGR | (uint32_t)RCC_CFGR_SW_PLL; /* Wait till PLL is used as system clock source */ while ((RCC-CFGR (uint32_t)RCC_CFGR_SWS) ! (uint32_t)0x08) { } } int main(void) { USART_Init(); Dri_RTC_Init(); KEY_Init(); LED_Init(); LED_On(LED_BLUE); // 开启时钟 RCC-APB1ENR | RCC_APB1ENR_PWREN; // !获取芯片待机状态判断之前是否曾经进入过待机模式 if ( (PWR-CSR PWR_CSR_SBF) ! 0 ) { printf(STM32芯片从待机模式被); // 复位状态 PWR-CR | PWR_CR_CSBF; if ( (PWR-CSR PWR_CSR_WUF) 0 ) { printf(Reset复位键唤醒 \n); } else { // 复位状态 PWR-CR | PWR_CR_CWUF; printf(RTC闹钟唤醒 \n); } } printf(测试STM32芯片进入低功耗 - 待机模式 \n); printf(5s后STM32芯片进入待机模式 \n); SysTick_DelayS(2); printf(3s后STM32芯片进入待机模式 \n); SysTick_DelayS(1); printf(2s后STM32芯片进入待机模式 \n); SysTick_DelayS(1); printf(1s后STM32芯片进入待机模式 \n); SysTick_DelayS(1); // !在进入待机模式前设定闹钟 Dri_RTC_SetAlarm(3); // !进入待机模式 enter_standby_mode(); while(1) { } }三、寄存器RTC_PRLH/RTC_PRLL 低位16高位4RTC_CNTH/RTC_CNTL 高16位 低16位RTC_ALRH/RTC_ALRL四、HAL库4.1配置RCC\SYS\USART14.2配置Timers-RTC-4.3VSCODE倒计时3s闹钟唤醒程序五、拓展延伸需求设定当前时间分析需要设置当前时间然后在获得当前时间。/** * 实时Real Time时钟 - 设定当前时间秒 */ void Dri_RTC_SetTime(uint32_t sec) { // 1. 查询RTOFF位直到RTOFF的值变为’1’ while ( ( RTC-CRL RTC_CRL_RTOFF ) 0 ) ; // 2. 置CNF值为1进入配置模式 RTC-CRL | RTC_CRL_CNF; // 3. 对一个或多个RTC寄存器进行写操作 RTC-CNTL sec; RTC-CNTH sec 16; // 4. 清除CNF标志位退出配置模式 RTC-CRL ~RTC_CRL_CNF; // 5. 查询RTOFF直至RTOFF位变为’1’以确认写操作已经完成。 while ( ( RTC-CRL RTC_CRL_RTOFF ) 0 ) ; } /** * 实时Real Time时钟 - 设定时间秒 */ uint32_t Dri_RTC_GetTime() { return (RTC-CNTH 16) | RTC-CNTL; }main.c:1获取1900到现在有多少s。将 RTC 输出的 Unix 时间戳秒级从 1970-01-01 00:00:00 UTC 起的秒数转换为「本地时区的年月日时分秒结构化数据2sprintf函数进行拼接字符串 获取系统的几个函数放到while里面 每隔1s刷新获取最新的时间先拆解代码功能这段代码的核心是将 RTC 输出的 Unix 时间戳秒级从 1970-01-01 00:00:00 UTC 起的秒数转换为「本地时区的年月日时分秒结构化数据」其中localtime(sec)是实现这一转换的核心函数。二、localtime()函数详解1. 函数基本信息所属库C 标准库time.h嵌入式系统中需确认编译器 / SDK 是否支持如 STM32 的 ARMCC/ARMClang 均兼容函数原型struct tm *localtime(const time_t *timer);入参const time_t *timer—— 指向 Unix 时间戳的指针time_t本质是long/uint32_t类型代表秒级时间戳返回值struct tm *—— 指向结构化时间数据的指针内存通常为静态分配无需手动释放但会被后续调用覆盖。2. 核心作用将「秒级时间戳」纯数字解析为人类可读的「本地时区日历时间」并填充到struct tm结构体中。“本地时区”函数会自动根据系统 / 编译器配置的时区偏移如东八区 UTC8将 UTC 时间戳转换为本地时间结构化解析把单调递增的秒数拆解为年、月、日、时、分、秒、星期等独立字段。int main(void) { Dri_RTC_Init(); Int_LCD_Init(); Int_LCD_ClearScreen(BLUE); uint8_t date_string[20] {0}; // 1. 如何获取到当前秒 Dri_RTC_SetTime(1765966710); while(1) { // 2. 如何根据当前时间生成时间字符串 //uint8_t *date_string 2025-01-17 09:58:00; uint32_t sec Dri_RTC_GetTime(); struct tm *rtc_date localtime(sec); sprintf((char *)date_string, %4d-%02d-%02d %02d:%02d:%02d, rtc_date-tm_year 1900, rtc_date-tm_mon 1, rtc_date-tm_mday, rtc_date-tm_hour, rtc_date-tm_min, rtc_date-tm_sec ); Int_LCD_DisplayASCIIString(0,0,16,32,date_string,WHITE,BLUE); SysTick_DelayS(1); } }六、归纳总结RTC和TIM对比应用场景时间戳记录记录传感器采集数据的时间如温湿度采集、故障报警时间定时唤醒低功耗设备周期性唤醒如每 10 分钟采集一次数据其余时间休眠闹钟提醒工业设备的定时任务如定时开关机、定时上报数据掉电计时主电源掉电后备用电池维持 RTC 运行恢复供电后可追溯掉电时长人机交互显示屏显示实时日期 / 时间如智能电表、手持终端。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

做网站的价格表wordpress固定链接404 nginx

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

张小明 2026/1/17 16:11:31 网站建设

最好的免费logo设计网站网站加载很慢怎么办

电子设备可靠性预计终极指南:GJB/Z 299C-2006完整解析与应用 【免费下载链接】最新GJBZ299C-2006电子设备可靠性预计手册电子版3M281P.pdf 最新GJB/Z 299C-2006电子设备可靠性预计手册(电子版)3M 281P.pdf欢迎来到本存储库,这里提…

张小明 2026/1/17 16:11:32 网站建设

长沙好的网站建设公司一同看网页打不开

PDF表格提取终极指南:Tabula完全操作手册 【免费下载链接】tabula Tabula is a tool for liberating data tables trapped inside PDF files 项目地址: https://gitcode.com/gh_mirrors/ta/tabula 还在为PDF文档中的表格数据提取而头疼吗?Tabula作…

张小明 2026/1/17 16:11:35 网站建设

福田哪家建设网站好国家企业信息系统查询系统

Keil4 STM32开发环境搭建:从零配置下载器到一键烧录的实战指南 你有没有遇到过这样的场景? 新装的Keil4打开工程,点击“Download”却弹出 “No Algorithm Found” ; 或者连接ST-Link后提示 “Cannot connect to target” …

张小明 2026/1/17 16:11:36 网站建设

餐饮网站建设的目的中国加工网招聘信息

5分钟快速上手WebRTC Android视频通话应用开发 【免费下载链接】webrtc_android webrtc VideoCall VideoConference 视频通话 视频会议 项目地址: https://gitcode.com/gh_mirrors/we/webrtc_android 想要在Android应用中快速集成高质量的视频通话功能?WebRT…

张小明 2026/1/17 16:11:36 网站建设

中山网站制作服务wordpress赞 赏 分享

揭秘AI原生应用在业务流程增强中的神奇功效 关键词:AI原生应用、业务流程增强、智能决策、生成式AI、流程自动化、企业数字化、人机协同 摘要:本文将深入解析AI原生应用(AI-Native Application)如何通过深度融合生成式AI、大语言模型(LLM)等前沿技术,重构传统业务流程,…

张小明 2026/1/17 16:11:37 网站建设