历史上的今天
今天是:2024年09月01日(星期日)
2018年09月01日 | STM32系统时钟设置,采用外部有源晶振相关配置问题
2018-09-01 来源: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); //
}
}
史海拾趣
|
论坛新老朋友们。祝大家新年快乐。在新的一年开始的时候,给大家一点小小的玩意。 工程师经常碰到需要多个串口通信的时候,而低端单片机大多只有一个串行口,甚至没有串口。这时候无论是选择高端芯片,还是更改系统设计都是比较麻烦的事。我把以前 ...… 查看全部问答> |
|
我是电子信息专业的学生,想读研。个人比较喜欢硬件方面的东西,比较讨厌编程,虽然硬件也要有编程,但是不想以后出去当程序员天天对着电脑写代码,谁能告诉我在硬件方面应该学什么(比如:做硬件从什么入手?是不是要学单片机?做硬件的话需要什么 ...… 查看全部问答> |
|
我想问一下在单片机里二-十转换可以用除法,但是在DSP里没有除法指令,怎么进行转换呢? 我需要转换的二进制数位16位,LED是四位,分别为百位,十位,个位,我用的是TI2407 … 查看全部问答> |
|
试验项目 : 基于msp430的低功耗液体流量检测模块时间: 2011/11 - 2012/4实验后期可能会购买CC2520EMK进行远程超表实验,原本选择的开发板是MSP430FG4618 Experimenter Board(LCD支持),正好论坛又推出团购活动,很想试一下铁 ...… 查看全部问答> |
|
终于不是5110那个小液晶了,翻出了落满灰的12864,这个还是带字库的,哈哈,串行模式哦,只要3根线,舍去片选,两根足矣~ 演示的是Launchpad的FATFS文件格式 初始化完之后,程序首先读取SD卡上第一个文件(本例中是test.txt),并显示TXT中的内容 ...… 查看全部问答> |
|
小四轴飞行器究竟能带多重起飞?--- 圆点博士实验证明,50克没问题 小四轴飞行器究竟能带多重起飞? 一直以来,没有人提供这个权威数据,经过楼主的实验, 圆点博士实验证明,50克没问题。 1)小四轴不带电池重量:18.56克 2)用个1200mAh,重量高达 29.92克的电池做负重测试 3)加上捆绑电池的绳子,重量达50克 ...… 查看全部问答> |
|
我查tm4c23gxl的手册,上面比较器的输入是PC6(C0+)和PC7(C0-),那输入应该接PC6 还是PC7? 另外我没找到模拟比较器输出对应的管脚,求大神指教比较器0对应的输出管脚。谢谢… 查看全部问答> |




