历史上的今天
返回首页

历史上的今天

今天是:2024年09月06日(星期五)

正在发生

2021年09月06日 | STM8单片机外部晶振不起振解决方法

2021-09-06 来源:eefocus

部分型号的STM8单片机可以支持最高24MHz的外部晶振,在配置外部晶振时需要按照如下的步骤进行:


1 定义外部晶振宏定义

宏定义的写法如下:

#define HSE_VALUE ((uint32_t)24000000)

外部晶振是多少的就写多少,如果是24M的外部晶振就写成24000000。

如果不用宏定义的话,就在单片机的头文件中找到宏定义部分,头文件的宏定义默认16M外部晶振,将其修改为实际晶振值就可以。


2 配置外部晶振

配置外部晶振时需要使能外部时钟,并且要等到晶振稳定。使用库函数配置的语句如下所示:

void CLK_Init()

{  

CLK_HSECmd(ENABLE);  //外部时钟开  

while(SET != CLK_GetFlagStatus(CLK_FLAG_HSERDY)); //等待外部晶振起振  

CLK_ClockSwitchCmd(ENABLE);//切换使能 

CLK_ClockSwitchConfig(CLK_SWITCHMODE_MANUAL,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE);//切换到外部晶振 

 CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); //1分频  


3 在main()中初始化

将CLK_Init()在main()中初始化。至此,外部晶振就配置完毕了,但是在执行程序时,却发现晶振起振失败,程序死在CLK_ClockSwitchConfig(...)处,为什么呢?这是因为没有添加Flash等到周期,这部分内容需要在option bytes中添加,如下图所示。

默认设置为No wait state,需要修改为1 wait state。


其实,这一部分的内容在数据手册上有体现:

When using the high-speed external clock (HSE) at higher frequencies up to 24 MHz,one wait state is necessary. In this case the device option byte should be programmed to insert this wait state. Refer to the datasheet option byte section.


设置完后,再**程序,就发现,晶振已经正常起振了。

推荐阅读

史海拾趣

AMD(超微)公司的发展小趣事
  1. 公司成立与早期发展:AMD(Advanced Micro Devices)公司成立于1969年,由Jerry Sanders在美国加利福尼亚州圣克拉拉创立。最初,AMD致力于生产挑战Intel在x86处理器市场的产品,但起初面临着市场份额不足和技术挑战等问题。然而,随着时间的推移,AMD逐渐在市场上获得了一席之地,并推出了一系列创新产品。

  2. x86处理器市场竞争:AMD在x86处理器市场与Intel展开了激烈的竞争。1991年,AMD推出了第一款x86兼容处理器386DX-40,开始了与Intel的竞争。此后,AMD不断推出更快、更强大的处理器,如K6系列、Athlon系列等,一度取得了一定的市场份额。

  3. ATI收购与图形处理器发展:为了拓展业务,AMD于2006年收购了图形处理器制造商ATI Technologies。这一收购使AMD进入了图形处理器市场,并推出了一系列创新的图形处理器产品,如Radeon系列。AMD通过不断推出高性能、高度集成的图形处理器,赢得了广大用户的青睐。

  4. 全球Foundry战略:为了降低制造成本并提高生产效率,AMD实施了全球Foundry战略。2008年,AMD成立了GlobalFoundries,将自己的制造业务转移给这家独立的半导体制造公司。这一举措使AMD得以专注于设计和研发,提升了公司的竞争力。

  5. 技术创新与新市场拓展:除了在x86处理器和图形处理器市场取得成功外,AMD还不断进行技术创新,拓展新的市场。例如,AMD在数据中心领域推出了EPYC系列服务器处理器,致力于满足云计算和大数据处理的需求。此外,AMD还在游戏主机市场与Sony和Microsoft等公司合作,提供高性能的处理器和图形处理器。

这些故事展示了AMD在其创立以来的发展历程,包括在x86处理器市场的竞争、图形处理器领域的扩展、全球Foundry战略的实施以及在新兴市场的技术创新和市场拓展等方面取得的成就。

ENSIGN公司的发展小趣事

ENSIGN不仅关注传统电子行业的发展,还积极探索新的业务领域。最近,ENSIGN集团宣布收购位于亚利桑那州的医疗保健园区River Park Post Acute和Elmwood Senior Living,以及其他七家公司。这一收购标志着ENSIGN正逐步向医疗保健领域进军,寻求多元化的发展机会。

APSA公司的发展小趣事

作为一家有社会责任感的企业,APSA公司始终注重可持续发展。公司在生产过程中积极采取环保措施,降低能耗和排放。同时,公司也积极参与社会公益活动,回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

请注意,这些故事是基于一般性的电子行业发展趋势和公司成长路径构建的,并不特指任何一家名为“APSA”的公司。如果你需要关于特定公司的信息,建议直接查阅该公司的官方网站或相关新闻报道。

Artaflex公司的发展小趣事

随着环保意识的日益增强,Artaflex公司积极响应绿色发展的号召,将环保理念融入企业的生产和经营中。公司采用环保材料和生产工艺,减少生产过程中的环境污染。同时,公司还加强废弃物的处理和回收利用,降低对环境的影响。这一举措不仅提升了公司的社会形象,也为其在绿色电子市场中赢得了更多的商机。


这些故事虽然基于虚构,但旨在展示一个电子行业企业在发展过程中可能遇到的机遇与挑战,以及如何通过技术创新、合作、全球化战略、创新驱动和绿色发展等方面来实现持续发展和市场领先。请注意,这些故事并不代表Artaflex公司的真实历史或现状。如需了解Artaflex公司的真实发展故事,请查阅相关公司资料或新闻报道。

EOS POWER INDIA Pvt公司的发展小趣事

在稳固了印度市场后,EOS开始积极拓展国际市场。公司参加了多个国际电子展会,与全球各地的客户和合作伙伴建立了广泛的联系。通过与国际知名企业的合作与交流,EOS不断吸收先进的管理经验和技术理念,并将其应用到自己的产品和服务中。这些举措不仅提升了EOS的国际知名度,还为公司带来了更多的商业机会。

Ericsson Power Modules公司的发展小趣事

随着产品质量的不断提升和技术的不断创新,Ericsson Power Modules开始积极拓展市场。公司不仅在欧洲市场取得了显著成绩,还逐步将业务拓展至亚洲、北美等地区。为了更好地服务全球客户,Ericsson Power Modules在瑞典斯德哥尔摩设立了总部,并在中国、美国等地建立了生产基地和研发中心。这种全球化布局使得Ericsson Power Modules能够更快速地响应市场需求,提供更高效、更便捷的服务。

问答坊 | AI 解惑

mega48单片机用双积分测量电阻

诸位好:     我是刚学习的菜鸟,有一个问题,用mega48单片机,用双积分方法测量电阻(0.1欧搭配999.9欧)     设置6个数码管,两个按键。     先按一个按键,记录当前阻值R1,存如单片机,前4个数码管显示阻值 ...…

查看全部问答>

wince如何加载mp3的filter?

要在wince下用DirectShow实现mp3的播放?但是没有mp3的filter,于是从xp里找了一个filter,请问该如何加载,能否给个实例?谢谢了…

查看全部问答>

ATD拨打电话出现NO CARRIER 错误如何解决.

我现在用的是一快MC37I的GSM模块. 我通过串口操作如下: AT+CSQ    +CSQ: 28,99 //确认有信号 AT+CREG=1 OK     AT+COPS? +COPS: 0,0,\"CHINA MOBILE\" //确认已注册上中国移动 ATD15989500805 //拨打电话 NO CARRIER ...…

查看全部问答>

同样的工程文件IAR编译出的bin文件内容不同,为什么?

完全相同的工程文件,使用IAR编译,仅仅工程文件存放路径不同,编译出来的bin文件不同,不能理解,这是为什么?…

查看全部问答>

G2553的官方例程有些代码有错误

本人感觉G2553的官方例程有些代码不正确或者不完善,不知看了官方例程的朋友有这种感觉没?…

查看全部问答>

整了好几天sd多块写超过16个扇区无法继续,何解?

网上到处都是例程里的多块写dma方式. 我就是想发一个cmd25指令连续写入N个扇区,这个应该可以实现的.但是现在写入前16个没问题,也看到确实写入了. 但到第17个扇区就报crc错误,咋回事呢?初步分析是sd卡缓冲区写满之后出问题了,这个该怎么操作呢?另 ...…

查看全部问答>

msp430中usart模块的问题

msp430中usart模块的问题USART模块中    异步通信寄存器和同步通信寄存器中有些东西都一样么?比如IAR中里面用的 // Put state machine in reset     UCB1CTL1 |= UCSWRST; 而我在头文件中查到: // UCAxCTL1 UART-Mode Co ...…

查看全部问答>

TI资料:负载开关:什么是负载开关,为什么需要负载开关,如何选择正

负载开关:什么是负载开关,为什么需要负载开关,如何选择正 下载: 负载开关:什么是负载开关,为什么需要负载开关,如何选择正 ? …

查看全部问答>

MSP430F149单片机的车体调平装置设计

随着国防技术的发展,根据任务需求,越来越多的军用武器需要随时变更工作地点。为了保证这些军用武器的机动性能,往往以载车为运输载体,如火箭炮这样的大型武器就被安装在载车上。载车到达目的地后,借助平台快速将武器架设调至水平而后工作,工作 ...…

查看全部问答>