历史上的今天
返回首页

历史上的今天

今天是:2025年04月03日(星期四)

正在发生

2020年04月03日 | STM8L151C8T6切换时钟信号

2020-04-03 来源:eefocus

先说重点:切换时钟源后,需要重新初始化时钟相关的外设。


项目需求,单片机在A状态下使用外部12MHz的晶振作为时钟信号,B状态下使用内部时钟HSI。


代码如下:


//初始化时钟信号

//形参:UINT8 Clk_Flg:时钟源,可以选为HSE或HSI

void InitClock(UINT8 Clk_Flg) {

UINT16 Clk_Cnt = 0;

if(HSE == Clk_Flg){ //时钟源选为HSE

CLK_DeInit();

CLK_HSEConfig(CLK_HSE_ON); 

while(!CLK_GetFlagStatus(CLK_FLAG_HSERDY)){

if ((++Clk_Cnt) > 50000){

InitClock(HSI); //HSE启动失败,切回HSI

return;

}

}

CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSE);

CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); 

CLK_SYSCLKSourceSwitchCmd(ENABLE);

CLK_ClockSecuritySystemEnable();

// System_ERROR_UserCallback(ERROR_REMOVE_HSE);//自定义函数,清除HSE错误提示

return;

}

else{ //时钟源选为HSI

CLK_HSICmd(ENABLE);

CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_2); //内部时钟为16MHz,2分频 = 8Mhz,

// System_ERROR_UserCallback(ERROR_HSE); //自定义函数,HSE错误提示

}

}


实际运行时发现,切换时钟后,和时钟相关的外设工作异常。


考虑到时钟源的影响,将所有工作异常的外设重新初始化后,代码即正常运行。

推荐阅读

史海拾趣

ETA Electric Industry Co Ltd公司的发展小趣事

近年来,ETA Electric Industry Co Ltd积极响应全球环保倡议,致力于实现可持续发展。他们优化了生产流程,减少了废弃物和污染物的排放。同时,公司还加大了对环保型电子元器件的研发力度,推出了一系列节能、环保的新产品。这些举措不仅提升了公司的社会形象,也为其在激烈的市场竞争中增添了新的优势。

上述五个故事,讲述了ETA Electric Industry Co Ltd在电子行业的发展历程。从起步之初的艰难,到技术创新的突破,再到市场拓展和质量管理的成功,最后到对环保和可持续发展的追求,每一步都体现了公司的成长和进步。

EM Microelectronic-Marin SA公司的发展小趣事

1995年,Philips Semiconductors收购了Mikron Graz,这一事件标志着EM Microelectronic-Marin与Philips在半导体领域的深度合作。此后,两家公司共同推动了RFID(射频识别)技术的发展,使其逐渐成为电子行业中不可或缺的一部分。EM Microelectronic-Marin凭借其在低功耗技术方面的优势,为RFID技术提供了强有力的支持。

ETC1公司的发展小趣事

埃特斯是一家在ETC技术创新和市场应用方面均表现出色的企业。公司拥有一支高素质的研发团队,不断推出具有创新性的ETC产品和解决方案。同时,埃特斯还注重将创新技术应用于实际场景中,为客户提供高效、便捷的ETC服务。通过技术创新和市场应用的有机结合,埃特斯在ETC行业中树立了良好的口碑和品牌形象。

Global Power Technology Co., Ltd公司的发展小趣事
可能是压缩机故障、制冷剂泄漏、冷凝器或蒸发器积尘过多等。
Electro Adapter Inc公司的发展小趣事

随着公司产品的日益成熟,EA公司开始寻求更广阔的市场空间。公司不仅在国内市场加大推广力度,还积极开拓国际市场。在海外市场,EA公司面临着文化差异、法规差异等挑战,但公司通过深入的市场调研和精准的市场定位,成功地将产品推向了欧洲、北美等发达国家和地区。同时,EA公司还加强了品牌宣传,通过参加国际展会、赞助行业活动等方式,提高了品牌知名度和影响力。

广东奥科公司的发展小趣事

随着电子技术的快速发展,广东奥科公司意识到只有不断创新才能在市场中立足。公司加大了对研发的投入,引进了一批高素质的研发人才,并建立了完善的研发体系。经过多次尝试和实验,广东奥科公司成功开发出了多款具有创新性和竞争力的电子产品,这些产品不仅性能卓越,而且设计独特,深受消费者的喜爱。这些技术突破和产品创新为广东奥科公司赢得了市场的认可,也推动了公司的快速发展。

问答坊 | AI 解惑

变频电源和变频器的区别

近十年来,由整个电路构成交流一直流一交流一滤波的变频装置变频电源,应运而生,并得到广泛应用。变频电源不仅能模拟输出世界不同国家的电网指标,而且也为出口电器厂商一工程师在设计开发、生产、检测等应用中提供纯净可靠的、低诣波失真的、高稳定的 ...…

查看全部问答>

VCC、VDD和VSS

在电子电路中,常可以看到VCC、VDD和VSS三种不同的符号,它们有什么区别呢? 一、解释 VCC:C=circuit 表示电路的意思, 即接入电路的电压; VDD:D=device 表示器件的意思, 即器件内部的工作电压; VSS:S=series 表示公共连接的意 ...…

查看全部问答>

请大家说说串口在线升级的方法

请大家有相关经验或者认识的说说串口在线升级的方法,大概有哪些思路? 主要是如何固定一些不需要升级的文件,如何将非升级文件与升级文件在FLASH中分区存放?…

查看全部问答>

wince编程中如何检测到挂起。

我想在挂起的时候做个操作,但是不知道如何检测到挂起。…

查看全部问答>

就各位帮忙 JTAG能连上,能读内容,不能擦除和烧写

at91fr40162s的CPU,晶振用的66M的。用的JTAG线是之前调at91fr40162的CPU的线和JTAG板子,是 20口的,因为at91fr40162s的CPU的JTAG线是直接从MCU接出来,只有四跟,TDI,TDO,TCK,TMS, 再接上两根电源和地线,有六跟,根据网上的说明自己弄了一 ...…

查看全部问答>

c8051f020串口1UART1发送数据的问题。

大虾们好,以下是我的UART1中断函数 void UART1 (void) interrupt 20 using 2 {   unsigned char xdata tChar=0;         EIE2 &= 0xBF;         RI1Flag=(SCON1 & 0x01);     ...…

查看全部问答>

程序编译报错,帮忙看看

volatile unsigned int *xy=(volatile unsigned int *)0x3401; 编译,这句话报错: erro:"declaration may not appear after executable statement in block" 是什么地方出了问题? #define conval 0x15 .. unsigned int a=conval; 也报 ...…

查看全部问答>

(职业规划)学机的人可以向嵌入式发展么???

大家好,我是某大学里的一名本科生,马上就毕业了。我学的是机械,以及力学。但我个人却对电路设计和单片机什么的比较有兴趣。最近,也在花相当一部分时间学习嵌入式。我个人觉得,未来机电结合才是王道。大家觉得我的想法怎么样?对于一个外行,非 ...…

查看全部问答>

有关TI F28335 定时器中断问题

我们公司以前一直用NEC的单片机,现在改为用TI 28335,刚开始用;想问一个问题,就是看资料说TIMER 0是给用户用的,那是否定时器中断,只能有一个了?若想多定时中断咋办?…

查看全部问答>

基于MSP430的MPPT控制器

本系统系统以MSP430G2231位核心控制器,核心控制器通过DC-DC降压电路从12V蓄电池取电。通过对光伏太阳能板输出电压与电流进行采样,可以实现最大功率跟踪。通过对铅酸电池的电压及充电电流进行采样,可以实现蓄电池充电的控制。   …

查看全部问答>