首页 » 互联网 » STM8单片机外部晶振不起振?你设置对了吗?_晶振_界说

STM8单片机外部晶振不起振?你设置对了吗?_晶振_界说

神尊大人 2024-11-18 21:53:21 0

扫一扫用手机浏览

文章目录 [+]

#define HSE_VALUE ((uint32_t)24000000)

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

STM8单片机外部晶振不起振?你设置对了吗?_晶振_界说 互联网

如果不用宏定义的话,就在单片机的头文件中找到宏定义部分,头文件的宏定义默认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中添加​,如下图所示。

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.

设置完后,再下载​程序,就创造,晶振已经正常起振了。

标签:

相关文章

易语言改ie,传承与创新下的编程之旅

随着信息技术的飞速发展,编程语言层出不穷。而在这其中,易语言以其独特的魅力和实用性,成为众多编程爱好者的首选。本文将探讨易语言改i...

互联网 2025-01-03 阅读0 评论0