历史上的今天
今天是:2025年08月17日(星期日)
2018年08月17日 | STM32系统时钟设置,采用外部有源晶振相关配置问题
2018-08-17 来源:eefocus
在调试STM32系统时钟设置时遇到一个问题:TIM2定时1Ms,TIM2中断服务函数time++,time=100时LED状态改变。程序运行后发现LED不是按照0.1S的时间闪烁,闪烁的很慢。
查找程序发现在系统时钟初始化时,RCC_HSEConfig(RCC_HSE_Bypass); 语句配置不对,此语句解释为HSE晶振被外部时钟旁路。指将芯片内部的用于外部晶体起振和功率驱动等的部分电路和XTAL_OUT引脚断开,这时使用的外部时钟是有源时钟或者其他STM32提供的CCO输出等时钟信号,直接单线从XTAL_IN输入,这样即使外部有晶体也震荡不起来了。
因为之前用的是有源晶振,接法如下图1:HSE配置如下:RCC_HSEConfig(RCC_HSE_Bypass);
图1
无源晶振,接法如下图1:HSE配置如下:RCC_HSEConfig(RCC_HSE_ON);
附:1 晶体与晶振的区别:
晶振是一个统称,晶振分为有源晶振和无源晶振。有源晶振又叫钟振,无源晶振又叫晶体。区别两者最简单的就是,是否需要对它单独供电,需要供电电压的,就是有源晶振,反之,无源晶振。还有一个外观上比较容易判断的就是,如果只有两个脚的,那一定是无源的晶振,但是如果是三个脚,四个脚的,可能是无源,也可能是有源,需要从上面提到的判断。
附:2 STM32系统时钟配置函数
void Sys_Clk_Init(void) //系统时间设置72M,使能DMA1,GPIOA,AFIO,ADC1
{
ErrorStatus HSEStartUpStatus;
RCC_DeInit();
// RCC_HSEConfig(RCC_HSE_Bypass);
RCC_HSEConfig(RCC_HSE_ON);
HSEStartUpStatus = RCC_WaitForHSEStartUp();
if(HSEStartUpStatus == SUCCESS)
{
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
FLASH_SetLatency(FLASH_Latency_2);
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_HCLK_Div1);
RCC_PCLK1Config(RCC_HCLK_Div2);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
RCC_ADCCLKConfig(RCC_PCLK2_Div6);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
{
}
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08)
{
}
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
RCC_APB2PeriphClockCmd( RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA , ENABLE);
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO | RCC_APB2Periph_GPIOB , ENABLE);
}
else
{
while(1); //
}
}
史海拾趣
|
编写了一个DLL,多个程序需要调用,将dll放在哪个路径下,才可以在被调用时系统可以将其装载到系统中,不需要知道dll路径。 1.包含EXE文件的目录, 2.进程的当前工作目录, 3.Windows系统目录, 4.Windows目录, 5.列在Path环境变量中 ...… 查看全部问答> |
|
北京知名外企招聘硬件工程师,待遇优厚,具体要求如下: 1.B.S degree, or higher, in computer science, networking, and telecommunication discipline. 2.A minimum of 3 years experience of designing hardware, strong technical skills an ...… 查看全部问答> |
|
在海思K3的方案上,加了MMA7455这款g-sensor,挂在I2C上,但是发现通讯不上,后来用示波器量波形,发现该从设备没有应答信号,核对过从设备地址是对的,器件电压也量过,没什么问题,请大家给提提意见,有没有什么好的解决方案?非常 ...… 查看全部问答> |
|
我将axsample在WM5模拟器上可以显示,为何连上手机却显示不了控件(我已经按照说明将证书加到了手机上)?请大虾们帮帮忙。… 查看全部问答> |
|
请教个问题,小弟的公司有一台设备A是西门子300的,安装s7后打不开,后来按照厂家的意思安装了s7的升级包(就是sp4),然后就可以看到。第二天因需要小弟装了s7-200的软件并用了一个上午,然后再打开300的时候设备A就看不到了,只能看到硬件组态。 ...… 查看全部问答> |
|
我想用DSP 2808 的内部FLASH 自启动 ,但是加入SPI 初始化指令之后就不能运行。 就是如果不加这条指令:SpibRegs.SPICTL.all =0x0006 DSP就可以上电时直接从内部FLASH 运行 (不接电脑)。 加了这条指令就貌似停在这了。 用计算机JTAG接口仿真时,加不加这条语句都正常。还有,SPI时钟信号输出有两个引脚,怎样选择?是不是在初 ...… 查看全部问答> |




