历史上的今天
返回首页

历史上的今天

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

2019年01月26日 | STM8->RCC

2019-01-26 来源:eefocus

尝试通过RTC中断唤醒halt()低功耗模式,需要一个功耗低的时钟源作为RTC运行时钟,选择LSI的16分频作为时钟源:


void RCC_LSI(void)

{

    CLK_LSICmd (ENABLE);   

    CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_LSI);

    while(CLK_GetFlagStatus(CLK_FLAG_LSIRDY)==RESET);

    CLK_SYSCLKSourceSwitchCmd (ENABLE);

    if(CLK_GetSYSCLKSource()==CLK_SYSCLKSource_LSI)

     { 

             CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_16); 

     } 

}


RTC中断设置:


      RTC_DeInit();

      CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);   

      CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_64); 

      RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16); 

      RTC_ITConfig(RTC_IT_WUT, ENABLE);

      RTC_SetWakeUpCounter(time);

      RTC_ClearITPendingBit(RTC_IT_WUT); 


        此处没有直接使能,因为在调试过程中,这部分的设置是在高速时钟下,如果把这部分设置都放置RCC_LSI()之后,则会卡死,所以只将RTC_WakeUpCmd(ENABLE)放在RCC_LSI()函数之后。


      halt()或wfi()模式被RTC中断唤醒后,切换回高速内部时钟:


void RCC_HSI(void)

        CLK_HSICmd(ENABLE);

         CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);

        while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)==RESET);

        CLK_SYSCLKSourceSwitchCmd (ENABLE);

        if(CLK_GetSYSCLKSource()==CLK_SYSCLKSource_HSI)

        {        

                CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); 

        }

}     


在尝试直接从LSI切换到HSI失败时,STLINK连接MCU发生错误:


         Failed to get execution status: SWIM error [30004]: Comm timeout    。因为调试过程中发生的,不存在硬件的突然异常,这种连接错误只能归因于MCU系统时钟没有工作,在该例中是由于时钟没有正常过渡,在调试中LSI到HSI切换时钟时发生,根据网上获得的一些线索可能是与寄存器操作的-“|”或-有关系。


在利用IAR for STM8 开发的过程中,如果工程较大结构层次较复杂,或者是经常改换文件名,会导致软件崩溃:


Fatal Error[Pe1696]: cannot open source file "stm8l15x_pwr.h",由于IAR软件的崩溃,原本正常的工程一下子报了很多此类的错误。只能重新添加引用文件夹了。



还有一类错误:


Fatal error: Unknown exception in driver (SD1)   Session aborted!


       网上可以查到的答案是因为IAR没与Texas Instruments在同一个系统盘下导致的,但这也是突发性的,应该不涉及到安装目录的问题,工程完善后这个问题也就奇怪消失了。

推荐阅读

史海拾趣

Digital Equipment Corp公司的发展小趣事

1957年,麻省理工学院的工程师肯尼斯·奥尔森(Kenneth Olsen)和哈伯特·安德森(Harlan Anderson)共同创立了Digital Equipment Corporation(DEC)。他们最初的目标是开发和生产创新的数字计算设备。凭借他们在数字技术领域的专业知识和独特视角,DEC推出了首批数字实验室和数字系统组件,这些产品在市场上取得了初步的成功,为DEC的发展奠定了坚实的基础。

富信半导体(FOSAN)公司的发展小趣事

DEC始终致力于技术创新和产品研发。在20世纪70年代和80年代,DEC推出了一系列具有划时代意义的计算机产品,如PDP系列计算机和VAX系列计算机。这些产品在技术上处于领先地位,受到了市场和客户的广泛认可。此外,DEC还通过国际扩张策略,将其业务拓展到了全球范围内,进一步巩固了其市场地位。

HiRel Connectors Inc公司的发展小趣事
对于长距离传输,可能需要选择更高电压的电源以减少传输损耗。
Asia Pacific Microsystems Inc公司的发展小趣事

APM深知在电子行业中,单打独斗很难取得长远的发展。因此,公司开始积极寻求与上下游企业的合作,共同构建完整的产业链。通过与原材料供应商、代工厂商以及终端客户的紧密合作,APM实现了产业链的整合与协同发展。这不仅降低了公司的运营成本,还提高了产品的质量和生产效率,为公司的持续发展奠定了坚实基础。

峰岹(Fortior Tech )公司的发展小趣事

APM在追求经济效益的同时,也积极履行社会责任,关注可持续发展。公司严格遵守环保法规,采用环保材料和生产工艺,减少对环境的影响。此外,APM还积极参与公益事业,通过捐赠和技术支持等方式回馈社会。这些举措不仅提升了公司的社会形象,也为其在电子行业中赢得了更多合作伙伴和客户的支持。

这五个故事展示了Asia Pacific Microsystems Inc公司在电子行业发展中面临的挑战、机遇以及所取得的成就。通过这些故事,我们可以看到APM是如何通过技术创新、市场拓展、产业链整合以及履行社会责任等方式,逐渐在电子行业中崭露头角的。

Captive Fastener公司的发展小趣事

Captive Fastener公司在电子紧固件领域一直致力于技术创新。某年,公司研发团队成功开发出一种新型的自锁紧固件,这种紧固件能够在高振动环境下保持稳定的连接性能,极大地提高了电子设备的可靠性和耐久性。这一创新产品迅速获得了市场的认可,Captive Fastener公司因此获得了大量订单,实现了业务的快速增长。

问答坊 | AI 解惑

有效应对多频手机中的天线设计问题

现在手机中的射频信号通道越来越拥挤。蜂窝电话已经从双频向三频甚至四频快速发展。这些复杂手机还需要处理来自外围无线设备的各种信号,如蓝牙、Wi-Fi和GPS。而随着WiMAX和LTE(4G)的加入,这种复杂度将越来越高。在移动电话中,天线开关控制着天线 ...…

查看全部问答>

DDraw怎样获取显存大小?

我用这个方法,但是好像获取的大小有问题,不知道这个方法是不是正确的方法,还没有更好的办法? DDCAPS   ddcaps;      ddcaps.dwSize   =   sizeof   DDCAPS;    lpdd ...…

查看全部问答>

是不是哪里错了?总提示设备没有连接

                 LPCWSTR strDrvName=L\"\";         strDrvName=TEXT(\"NDS0:\");         HANDLE hHandle;         hHandle ...…

查看全部问答>

请教误码仪的问题~~

请问有人做过误码仪吗?最近在做一个误码仪,有个问题卡在那边,问题是要我产生误码,之后就是让我检测误码,码型为NRZ,RZ,AMI,HDB3码,关于NRZ,RZ码我就不知道了,这种码还能判断误码?…

查看全部问答>

内存扩容问题,急???

128M扩到512M,我用的是uboot+NK.nb0,uboot已经改好ram初始化部分,没有开mmu,在uboot下测试512内存读写正常,wince改了config.bib中ram大小,oemtable也改了内存映射,但是现在内核跑到oeminit跑完就死了,不好调试。试着用oemgetextensiondram( ...…

查看全部问答>

渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临!

渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临! 渥瑞达“3G移动开发”免费试听课于北京交通大学举行,欢迎大家光临! 详情请参见 www.neworigin.net 同时欢迎大家与我们的609期学员交流!这期学员已与2月11日毕业 ...…

查看全部问答>

【连载】【ALIENTEK MiniSTM32 开发板】STM32不完全手册-内部温度传感器实验(14)

  开发板购买地址:http://shop62103354.taobao.com [ 本帖最后由 正点原子 于 2010-9-7 09:45 编辑 ]…

查看全部问答>

wire型和reg型的一点小疑惑

今天在看书时发现一点疑惑,问题大致是这样的: 一个电路网络,要对其中一个2输入与门的输出(定义为tmp吧,其实此处并不存在端口或变量)进行一些赋值操作,。在Verilog编程中按说是应该把其定义为wire型变量,可是今天看的一个例子却定义成了reg ...…

查看全部问答>

2812搜查令+TMS320F2812芯片开发中Flash代码性能的研究

TMS320F2812芯片开发中Flash代码性能的研究 感兴趣的下过去看看啊 [ 本帖最后由 hangsky 于 2011-11-8 13:36 编辑 ]…

查看全部问答>