历史上的今天
返回首页

历史上的今天

今天是:2025年01月26日(星期日)

2019年01月26日 | STM32->RTC

2019-01-26 来源:eefocus

STM32在更大范围内的时间控制,就不能再使用Delay()函数和tim了,是吧?


    RTC(Real Time Clock)实时时钟单元,即使系统电源关闭,可以通过备用电池供电继续工作。RTC 可以通过STRB/LDRB这两个ARM指令向CPU传送8位数据(BCD码),这些BCD 数据包括秒、分、时、日期、星期、月和年信息。RTC单元可以通过一个外部的32.768kHz晶振提供精确的时钟。每一个周期信号到来计数器就加1。


    RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。但在实际使用中,通常MCU复位就会导致RTC时间丢失。因为RTC也需要备份,然后在复位后读出备份日期。(BKP->DR寄存器数量有限哦)


    if(HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR1) != 0x32F2){....


    HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,0x32F2);}


或者用STLib:


    if(BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5){....       


    BKP_WriteBackupRegister(BKP_DR1, 0xA5A5);}                 // 寄存器:BKP->DR1=0xA5A5;


    备份域可以通过软件复位,RCC的BDCR寄存器BDRST位置1;也会在VDD和VBAT两者都掉电时复位。所以在检测到后备寄存器有特定值得情况下就排除了VDD和VBAT两者都掉电的情况,反之就需要初始化RTC了。BKP->DRx寄存器不会被系统复位、电源复位、从待机模式唤醒所复位,它们由备份域复位来复位或(如果侵入检测引脚TAMPER功能被开启时)由侵入引脚事件复位。RTC的核心寄存器(RTC_PRL、RTC_ALR、RTC_CNT和RTC_DIV)由后备域复位。

使用LSI驱动RTC的问题:


     STM32的LSI频率40KHZ,网友实测在30-60KHz间波动,一个小时会有1分钟左右的偏差。LSI断电的时候,不在后备供电区域范围内,而外接的3.3V电池连接到VBAT上只给后备供电区域供电,导致电池只能维持后备RTC的计数,并无法维持LSI,RTC不继续运行只保持断电前的时间。重新上电后需要重新校准。

    RTC的时钟源一经确定不能改变,除非备份域复位才能重新设置其他时钟源如LSE。



关于RTC中断:

   一般使用到RTC的秒中断和闹钟中断,例如在HAL库中:

    HAL_RTC_SetAlarm_IT(&hrtc,sAlarm,RTC_FORMAT_BCD);

    HAL_RTCEx_SetSecond_IT(&hrtc);

    都会进入到 RTCAlarm_IRQHandler()中,如果没有处理直接放处理函数:

    HAL_RTC_AlarmIRQHandler(&hrtc);        //事件中断

    HAL_RTCEx_RTCIRQHandler(&hrtc);        //秒中断

    在ST库中实现的话在从RTC_IRQHandler()退出会清除所有中断标志,秒中断会导致清理闹钟中断标记,需要有不同的中断优先级。但在HAL中的中断处理函数会先判断中断标记,并包裹在if中完成相应的操作,所以没有遇到这个问题。


    调用sAlarm->AlarmTime=(RTC_TimeTypeDef)stimestructure和 HAL_RTC_SetAlarm_IT(&hrtc,sAlarm,RTC_FORMAT_BCD);,就会进入HardFault_Handler。调试发现错误出现在LDRB  r0这条汇编指令上。

上一篇:STM32->UART

下一篇:STM32->DMA

推荐阅读

史海拾趣

富满电子(FM)公司的发展小趣事

在电子行业中,富满电子(FM)公司的发展历程充满了创新与挑战,以下是五个与其发展紧密相关的事实性故事:

1. 市场需求驱动下的产能扩张

2016年至2017年间,随着智能手机等智能终端设备的出货量达到历史峰值,市场对芯片的需求急剧增加。富满电子抓住这一市场机遇,积极扩产以满足需求。这一时期的产能扩张不仅提升了公司的市场份额,也为其后续的技术研发和产品线拓展奠定了坚实基础。然而,随着市场需求的回落和行业内竞争加剧,富满电子也面临着产能过剩和价格下滑的挑战,这迫使公司更加注重技术创新和市场细分,以提升竞争力。

2. LED芯片设计领域的突破

富满电子早期主要从事电源管理芯片的设计与生产,但受限于完全竞争的市场环境和欧美企业的技术垄断,公司在该领域的发展空间有限。为了寻找新的增长点,富满电子将目光投向了LED芯片设计领域。通过不断的技术研发和产品创新,富满电子成功推出了多款应用于显示屏和通用照明等中低端市场的LED芯片产品。尽管面临激烈的市场竞争,但富满电子凭借其高性价比的产品逐渐在市场中占据了一席之地。

3. 电源管理芯片的多元化布局

在电源管理芯片领域,富满电子不仅继续深耕传统市场,还前瞻性地布局了快充等新兴市场。公司推出的USBPD系列芯片在快充市场展现了良好的先发优势,并逐渐获得市场的认可。此外,富满电子还通过“协议芯片+MOS+ACDC”模块化解决方案的推出,进一步提升了其在电源管理芯片市场的竞争力。这一多元化布局不仅为公司带来了新的增长点,也增强了其在行业内的整体实力。

4. 射频业务的拓展与前瞻布局

为了应对5G时代的到来,富满电子在2020年设立了射频公司,并开始布局5G射频开关、射频滤波器等产品的研发与生产。这一举措不仅展现了公司在技术前瞻性和市场敏感度方面的优势,也为其在未来无线通信领域的竞争中赢得了先机。通过不断的技术积累和市场拓展,富满电子有望在5G射频领域实现新的突破和发展。

5. 应对市场质疑与财务稳健发展

近年来,富满电子也面临过一些市场质疑和负面消息的影响,如被举报做假账等。然而,公司始终坚持以事实为依据,通过法律手段积极回应并澄清相关指控。同时,富满电子在财务管理上也保持了稳健的态度,严格按照相关法律法规进行会计核算和财务信息披露。这些措施不仅维护了公司的声誉和形象,也为其在复杂多变的市场环境中保持稳健发展提供了有力保障。

Ametek公司的发展小趣事

Ametek公司成立于1930年,总部位于美国宾夕法尼亚州伯温。它是一家跨国公司,涉足电子仪器和电子设备的设计、制造和销售。以下是关于Ametek公司发展的五个相关故事:

  1. 初期成立与增长:Ametek最初成立为一个机械仪器制造商,专注于生产电动车和电动车零部件。随着时间的推移,公司逐渐扩展业务,开始涉足电子仪器和设备的制造,并迅速取得了成长。

  2. 收购与多元化发展:Ametek通过一系列收购和合并扩大了业务范围。这些收购使得公司能够进入新的市场领域,并获得新的技术和产品线。例如,1998年Ametek收购了Programmable Power,进入了电源和电源测试设备市场。这种多元化战略为公司带来了更广泛的客户群和收入来源。

  3. 技术创新和研发投入:Ametek不断投入研发,并推出了一系列技术创新产品。公司在测量、测试和分析技术方面取得了重大突破,为客户提供高质量的解决方案。Ametek的产品包括精密仪器、检测设备、传感器等,广泛应用于航空航天、能源、制造业等领域。

  4. 全球扩张与市场布局:Ametek通过建立全球销售网络和设施,实现了全球市场的扩张和布局。公司在北美、欧洲、亚洲等地设有多个生产基地和销售办事处,为客户提供及时的服务和支持。这种全球化战略使得Ametek能够更好地满足不同地区客户的需求,并加强了在全球市场的竞争力。

  5. 持续增长与业绩表现:Ametek持续实现了稳健的增长和良好的业绩表现。公司不断推出新产品、拓展市场,并通过提高生产效率和降低成本等措施提升盈利能力。Ametek的业绩稳步增长,为股东创造了可观的价值,并使得公司成为电子仪器和设备行业的领先企业之一。

这些故事展示了Ametek公司从成立初期到如今在收购与多元化发展、技术创新与研发投入、全球扩张与市场布局以及持续增长与业绩表现等方面取得的重要进展。

Amptek Inc公司的发展小趣事

近年来,随着新能源市场的蓬勃发展,CDE公司敏锐地抓住了这一机遇。公司积极参与军事和能源应用的高压直流链路电容器市场,并成功推出了针对EV快速充电的高压直流链路电容器。这一产品的推出不仅满足了市场对高效、可靠电容器的需求,也为CDE在新能源领域的发展奠定了坚实基础。

Amveco Toroidal Power Products公司的发展小趣事

随着电子行业的快速发展,客户对环形变压器的性能要求也越来越高。Amveco公司敏锐地捕捉到了这一市场变化,加大了在技术创新和产品升级上的投入。公司研发团队不断攻克技术难关,成功开发出了一系列具有更高效率、更低损耗的环形变压器产品,满足了客户对高性能产品的需求。同时,公司还不断优化生产工艺,提高了产品的可靠性和稳定性。

Emhiser Research Inc公司的发展小趣事

Emhiser Research在成立之初就专注于半导体技术的研究。随着市场对更高效能、更小体积的芯片需求的增长,公司研发团队成功开发出了一种新型的高性能低功耗芯片。这一技术突破迅速吸引了众多手机厂商和电子设备制造商的关注。Emhiser抓住这一市场机遇,与多家大型企业建立了合作伙伴关系,其产品迅速在市场上占据了一席之地。

Desco Tools公司的发展小趣事

Desco Tools公司一直注重客户服务和品质保障。公司建立了完善的客户服务体系,为客户提供全方位的技术支持和解决方案。同时,公司还建立了严格的质量管理体系,确保每一件产品都符合高标准的质量要求。这些举措赢得了客户的信任和好评,也为公司的长期发展提供了有力保障。

问答坊 | AI 解惑

5x5x5 LED立方体——横向独立3维显示

看到这个设计觉得很有意思,大家可以开拓下思路,想想,夜里拿个这玩意,想必很酷哦: Introduction     Our project, in one sentence, is an orientation independent 3D LED display. We were inspired by various videos on yo ...…

查看全部问答>

求助!!!输入的差分模拟电压怎么隔离?

如题,外部输入0~5V的模拟差分电压,需要隔离后再送到A/D进行采集,请问大家有没有什么好的方法对输入的模拟差分信号进行隔离?万分感谢!…

查看全部问答>

powerpc e300 的CS0访问NOr flash 的范围是如何控制的 ?

powerpc  e300 的CS0访问NOr flash 的范围是如何控制的 ? 如nor flsah 的地址是0xfc00 0000 - 0xffff ffff 而我设置LPC cs0 设置访问从0xffff 0000 开始, 那么如何访问0xfc00 0000 - 0xffff 0000 的空间呢?…

查看全部问答>

CE下如何查看进程使用的内存情况

如果有工具请推荐。没有工具的话自己开发也行,但不知道用的是WINCE的哪几个API?…

查看全部问答>

求助,philips 的P89C51RA2BN 的串口输出问题

#include #include sbit P1_0 = P1^0; sbit P1_1 = P1^1; sbit P1_2 = P1^2; sbit P1_3 = P1^3; void InitUart(void)  //初始化串口 {   //设置UART传输模式,mode2 ,enable UART,SM2 = 1   SCON = 0x50; ...…

查看全部问答>

定时器做延时

本人用定时器做延时,来串口发送字符串,遇到问题,不知道怎么解答,程序如下l; #include <reg51.h>#include <stdio.h> #include \"SerialM1.h\"#include \"..\\Lib\\Delay.h\"//================================================== ...…

查看全部问答>

【求助】关于如何锁程序的问题

求助: 各位达人有谁知道如何给430加密?…

查看全部问答>

模拟新手

欢迎大家一起讨论!向模拟界进军。…

查看全部问答>

国赛官网上会不会继续更新!?

本帖最后由 paulhyde 于 2014-9-15 03:05 编辑 就这些吗,感觉好失望啊!有点儿不甘心啊。    …

查看全部问答>

模拟厂商中,哪家的样片申请比较容易?

当设计中需要申请样片时,哪家申请样片相对容易,哪家又比较复杂呢?个人感觉MAXIM、TI容易一些,ADI着实很难啊。呵呵…

查看全部问答>