历史上的今天
返回首页

历史上的今天

今天是:2025年04月18日(星期五)

正在发生

2020年04月18日 | STM8S主时钟切换(使用HSE时钟源)

2020-04-18 来源:eefocus

使用的时钟切换方式为手动切换,在中断中进行时钟切换,然后将切换后的主时钟输出到CLK_CCO口

时钟切换流程图(手动切换流程图):

在这里插入图片描述

时钟树:

在这里插入图片描述

寄存器版:


unsigned char i=255;

 PD_DDR_DDR0=1;//配置PD0为输出模式

  PD_CR1_C10=1;//配置PD0为推挽模式

  PD_CR2_C20=1;//配置PD0输出最大为10Mhz

  

  if(CLK_CMSR==0xE1)   //如果HSI为主时钟源(复位值),切换到HSE

  {


    CLK_SWCR_SWIEN=1;//时钟切换中断使能

    CLK_SWR=0xB4;//HSE为主时钟源

    asm("rim");//开启全局中断

  }


    while(CLK_SWCR_SWBSY)//等待忙标志复位

  {

    i--;

    if(i==0) {

      CLK_SWCR_SWBSY=0;//如果时钟切换没有成功,清除标志位SWBSY以复位当前的切换操作

      break;

    }

    

  }

  while(CLK_CCOR_CC0BSY);//等待CCO时钟空闲 (0:CCO时钟空闲)

  CLK_CCOR_CCOSEL=0x0c;//配置时钟输出源选择Fhse

  CLK_CCOR_CCOEN=1;//使能CCO时钟输出

  

  while(1);

}


#pragma vector=CLK_SWITCH_vector

__interrupt void CLK_IRQHandler(void)

{

  CLK_SWCR_SWIF=0;//清除中断标志

   CLK_SWCR_SWEN=1;//使能时钟切换的执行

}


库函数版:

main.c文件


void main(void)

{

  CLK_DeInit();//重置时钟相关寄存器到默认复位值

  GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_HIGH_FAST);//高速(10MHz)推挽高电平输出


  enableInterrupts();//使能全局中断


  ErrorStatus es;

  es = CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL, CLK_SOURCE_HSE, ENABLE, CLK_CURRENTCLOCKSTATE_ENABLE);

  //手动切换;新的时钟源:HSE;启动切换中断;保持原时钟源开启

  if (es == SUCCESS)  //切换是否成功,SUCCESS or ERROR

  {

      CLK_CCOConfig(CLK_OUTPUT_MASTER);//配置时钟输出脚的时钟源:f(master)

      CLK_CCOCmd(ENABLE);//启动时钟输出功能

  };



  /* Infinite loop */

  while (1)

  {

  }

  

}


stm8s_it.c文件


INTERRUPT_HANDLER(CLK_IRQHandler, 2)

{

  /* In order to detect unexpected events during development,

     it is recommended to set a breakpoint on the following instruction.

  */

  

  ITStatus flags_tatus;

  flags_tatus = CLK_GetITStatus(CLK_IT_SWIF);//检测时钟切换中断标志

  if (flags_tatus == SET)  //如果时钟切换中断标志SWIF是置位状态,SET or RESET

  {

    CLK_ClearITPendingBit(CLK_IT_SWIF);//清除时钟切换中断标志

 

    CLK_ClockSwitchCmd(ENABLE);//启动时钟切换功能 

  };

}


结果:

在这里插入图片描述

推荐阅读

史海拾趣

Amphenol RF公司的发展小趣事

Amphenol RF 是 Amphenol 公司的一个子公司,专注于设计、制造和销售射频连接器和组件,在电子行业中占据重要地位。以下是关于 Amphenol RF 公司发展的五个相关故事:

  1. 创立与早期发展:Amphenol RF 公司的历史可以追溯到20世纪40年代,当时被称为RF Connector Division。最初,公司主要致力于生产射频连接器和组件,为通信、航空航天、军事和工业市场提供射频连接解决方案。随着射频技术的发展和市场需求的增长,Amphenol RF 逐渐壮大成为射频连接器领域的重要参与者。

  2. 技术创新与产品多样化:Amphenol RF 公司在射频领域持续进行技术创新,并不断推出新型的射频连接器和组件产品。公司致力于提升产品的性能、可靠性和适应性,满足客户对高频射频应用的需求。除了传统的射频连接器,Amphenol RF 还推出了一系列新型产品,如微波连接器、同轴连接器、板对板连接器等,拓展了产品线的多样性。

  3. 客户合作与定制化解决方案:Amphenol RF 公司与客户建立了紧密的合作关系,共同开发定制化的射频连接器和组件解决方案。公司的工程团队与客户密切合作,根据客户的需求和应用场景,设计和制造符合特定要求的产品。这种定制化解决方案能够满足客户个性化的需求,为客户提供更加专业和完善的服务。

  4. 质量控制与认证标准:Amphenol RF 公司高度重视产品质量控制,并严格遵循国际质量管理体系标准。公司的生产工艺和质量管理体系符合ISO 9001质量管理体系认证标准,以确保产品质量的稳定性和可靠性。此外,Amphenol RF 公司的产品还通过了各种行业和应用领域的认证标准,如航空航天领域的MIL-SPEC标准等,确保产品符合行业标准和规定。

  5. 全球市场拓展与合作伙伴关系:除了在美国的生产基地外,Amphenol RF 公司还在全球范围内设有多个销售办事处和代理商网络,拓展了国际市场份额。公司与全球各种行业领先企业建立了长期稳定的合作关系,共同推动产品的创新和市场拓展。通过全球市场拓展和合作伙伴关系,Amphenol RF 公司不断扩大业务规模,增强了在射频连接器领域的市场竞争力。

这些故事展示了 Amphenol RF 公司从成立初期到如今在技术创新、产品多样化、客户合作与定制化解决方案、质量控制与认证标准以及全球市场拓展与合作伙伴关系等方面取得的重要进展。

Cyrix Corp公司的发展小趣事

1999年,Cyrix再次被威盛电子(VIA)收购。这次收购后,Cyrix所生产的CPU产品上开始出现了两个商标:VIA和Cyrix。这种双标现象反映了Cyrix在被收购后的地位变化。随着时间的推移,Cyrix的商标逐渐淡出市场,最终被彻底放弃。

Comair Rotron公司的发展小趣事

随着电子行业的竞争加剧,Comair Rotron意识到单打独斗已难以满足市场需求。因此,公司开始积极寻求与行业内其他企业的合作机会。通过与多家知名电子企业建立战略合作关系,Comair Rotron不仅获得了更多的业务机会,还通过与合作伙伴的技术交流和资源共享,不断提升自身的技术水平和产品质量。

Fagor Electrónica公司的发展小趣事

然而,随着市场竞争的加剧和技术的快速变革,Fagor Electrónica也面临着前所未有的挑战。为了应对这些挑战,公司不断加大研发投入,积极引进先进技术和管理经验。同时,Fagor Electrónica还加强了与供应商和客户的合作,以共同应对市场变化。这些努力使得公司在激烈的市场竞争中保持了领先地位。

E-Switch公司的发展小趣事

自1979年成立以来,E-Switch公司始终将创新作为发展的核心动力。在公司成立初期,面对激烈的市场竞争,E-Switch决定走差异化路线,专注于开发和生产高品质的开关产品。通过不断的技术创新和产品优化,E-Switch逐渐在电子行业中树立了自己的品牌形象。

Anvo-Systems公司的发展小趣事

随着公司业务的不断扩展,Anvo-Systems开始实施国际化战略。公司先后在亚洲、欧洲和北美等地设立了研发中心和生产基地,以更好地满足不同地区的市场需求。同时,Anvo-Systems积极参与国际电子展会和技术交流活动,与全球同行建立了广泛的合作关系。这一全球化布局不仅提升了公司的竞争力,也为公司的长期发展打开了新的空间。

问答坊 | AI 解惑

一种新型的监控图像干扰处理方法

正常情况下,电视监控系统摄像机大多采用SYV75-5视频线缆传送视频信号进机房,由于线路较长,而且电磁干扰无处不在,所以我们很难保证图像不出现干扰。经统计,在终端电电视墙上,图像较容易产生干扰的摄像机其安装部位第一为电梯桥厢,第二为户外 ...…

查看全部问答>

关于USB MassStorage Client Function的几个问题?

在WinCE上实现优盘的功能已经实现了,现在我有几个小问题想请教一下? 1、usbmsfn.dll是MassStorage Client Function对应的驱动文件,这个文件的源代码在哪里,如何编译? 我通过查阅以前的帖子,发现可以通过sysgen_capture usbmsfn 得到对应的s ...…

查看全部问答>

关于内部数据寄存器的问题

在keilC51里,用了可以位寻址的存储器,可是工程芯片设成89C51时编译可以通过,就是不能实现功能(在电脑上通过串口仿真)。只有把芯片改成89C52才可以实现。 在平凡单片机书上也写了用到内部数据存储器时工程里需要把芯片设成52系列的。 不知道 ...…

查看全部问答>

【求助】关于读写FLASH的问题

我最近在用430F169做个东西,其中用到了FLASH的读写,遇到了难题,请热心人帮忙解决. 问题是这样的: 在程序中我需要四个常量,这四个常量通过上位机写入FLASH存储区.在调试时通过上位机改变四个常数的一个或几个,并且我希望在写入一个时不希望 ...…

查看全部问答>

蓝牙控制器价格?

做一个蓝牙常用控制器价格如何?…

查看全部问答>

急!!求高手解答

想问下inverse z transform变换 分母如果没有常数能变换么…

查看全部问答>

7月分RAWOS讨论

这份是RAWOS群QQ七月份讨论的部分内容…

查看全部问答>

uip tcp向pc主动发送数据

各位大神,                        我在stm32上移植uIP1.0,使用是tcp,现在由pc端向客户端发送数据,能正常接受,并且返回,     问题在于,我怎 ...…

查看全部问答>

不同的FPGA芯片之间有那些差别啊?

最近我开始学习FPGA,但看了一些教程后,自己很困惑,好像没有在教程中看见不同的芯片之间有什么不同,我以前一直都是学习单片机的,习惯上了处理器外设的这种配置,我知道FPGA的一切都需要自己设计,但不同的FPGA之间都有那些区别啊?我就知道他们 ...…

查看全部问答>

PCB版图设置

最近做PCB版图时不知道按了哪个快捷键导致出现如图问题(在PCB中元件只显示焊盘,元件的黄色边框不显示),请问怎么还原到原来状态啊? …

查看全部问答>