一般的时钟设置是外部8M的时钟,但是当设置为外部16M的时候,需要配置如下:
(1)stm32f103xx的芯片,在stm32f10x.h库中修改大概119行的HSE_VALUE 为16000000(自带的是8000000),然后在system_stm32f10x.c中设置,大概在1054行,位于SetSysClockTo72(void)函数中,添加2分频(RCC_CFGR_PLLXTPRE_HSE_Div2|),然后在1056处添加同样的句子(RCC_CFGR_PLLXTPRE_HSE_Div2|),编译就可以了。
(2)stm32f40xx的芯片,在stm32f4xx.h库中修改大概122行的修改为16M如下
#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)16000000) /*!< Value of the External oscillator in Hz *///×Ô¼º°å×Ó8M
#endif /* HSE_VALUE */
然后在system_stm32f4xx.c中的大概316行处修改PLL_M 16
#if defined (STM32F40_41xxx) || defined (STM32F427_437xx) || defined (STM32F429_439xx) || defined (STM32F401xx)
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */ //¸ü¸Ä×Ô¼ºµÄ16M //PLL_M =8
#define PLL_M 16
这里就完成了时钟的配置。
关键字:STM32 时钟 16M设置
引用地址:
STM32时钟,外部16M设置
推荐阅读最新更新时间:2024-03-16 16:10
STM32的内部温度传感器
1、STM32的内部温度传感器 STM32内部温度传感器与ADC的通道16相连,与ADC配 合使用实现温度测量。测量范围–40~125℃,精度 ± 1.5℃ 操作流程: 1)、设置ADC相关参数 // ADC1 configuration ----------------------------- ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructu
[单片机]
盛群半导体推出HT1380A/HT1381A新Clock IC
盛群半导体的实时时钟IC HT1380/HT1381已普遍销售于全球多年,可应用在各种需要计数时间的产品上,如:电表、水表、家电产品、计算机产品等,质量及特性深受客户肯定。基于服务及对自我质量的要求,盛群对HT1380/HT1381进行体质上的改善,以更先进制程开发,加大IC的负性阻抗能力及抗噪声能力、提升操作温度特性。因为增强了特性,所以新版IC编号为HT1380A/HT1381A,请旧雨新知继续爱用。 、 HT1380A/HT1381A与HT1380/HT1381在特性及包装脚位上完全兼容,采用串行式接口;具有计算秒、分、时、日、月、星期、年的能力;具有闰年调整的能力;低工作电流:<0.5uA(Max.)@VDD=2.0V;有
[模拟电子]
PIC单片机读写时钟芯片DS1302汇编程序
#INCLUDE CBLOCK 20H SEC ;秒 MIN ;分 HOU ;小时 DATE ;日期 MON ;月 DAY ;日 YERR ;年 DDD ;写使能位 TIME_TX ;1302发送寄存器 TIME_RX ;1302接收寄存器 COUNT1 ; COUNT2 ; DELAY1 DELAY2 ENDC ******************************* ; ; 1302子程序说明 ; ;****************************** ; DS1302INI ;1302初始化,先禁止RST,设定充电方式 ; SET_TIME ;一次发送7个数据设定时间,包含写使能寄存器,8个数据 ; GET_T
[单片机]
STM32数组越界问题
前段时间在写STM32程序时,发现定义的局部变量会发生莫名其妙的数组越界,改变其定义顺序问题竟然得到解决,怀疑是堆栈空间没有分配够,于是决定追根溯源,查到一些资料,将startup_stm32f10x_hd.s中的栈空间改大即可: Stack_Size EQU 0x00000400;栈空间大小; AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp ; h Heap Configuration ; o Heap Size (in B
[单片机]
STM32入门学习路线
可以说就目前的市场需求来看,stm32在单片机领域已经拥有了绝对的地位,51什么的已经过时了也只能拿来打基础了,最后依然会转到stm32来,也正是因为这样stm32的学习者越来越多,其中不难发现绝大部分的stm32的学习者是在入门阶段的,所以今天我们就来聊聊stm32的入门学习路线。 先来看个图,相信会有所了解。 首先学习stm32 不管是C语言还是汇编肯定跑不了的所以C语言一样要打好基础,尤其是C语言中的指针,结构体,循环 等等一些最基础的知识你要能够熟练应用,要不然对于从事stm32开发的难度是非常大的。 针对C语言我给大家推荐一个视频资料虽然是某某机构录的资料不过讲的倒是很详细值得一看 C语言
[单片机]
STM32(IAR编译) 堆栈溢出 程序跑飞
问题一、上电程序跑飞或者运行几步程序跑飞,IAR提示堆栈溢出。 1、首先确认程序入口地址。NVIC_Configuration();// 嵌套向量中断控制器配置 。我这里是STM32f100c8t6b芯片。 在IAR OPTIONS- C/C++ Compiler- Preprocessor 里面定义了VECT_TAB_FLASH 这样程序入口地址就是0X08000000+0X3000(既0X08003000)。这里为什么是0X08000000呢因为STM32主程序存储地址是从0X08000000开始,加上0X3000是为了用户引导程序预留一段空间。不然每次一上电就跑程序没有引导程序是不太现实的吧。不过测试的时候无所谓应该吧
[单片机]
不用晶振,STM32内部HSI时钟的倍频使用
博主最近用STM32F1系列单片机做一个触摸屏USB鼠标,考虑不用外部晶振而使用STM32内部8MHz HSI RC作为时钟源。由于USB协议规定了48MHz 的USB时钟,故必须对HIS作PLL倍频处理后得到PLLCLK作为STSCLK时钟。时钟关系见如下STM32F1时钟树: 类比正点原子STM32F1寄存器版本使用外部晶振的时钟初始化函数,改动得到使用HSI作为时钟源,SYSCLK为48MHz的初始化代码: void Stm32_Clock_Init(u8 PLL) { unsigned char temp=0; MYRCC_DeInit(); //复位并配置向量表 RCC- CR|=0x00
[单片机]
基于STM32平台实现SVPWM调制
SVPWM SVPWM是空间矢量脉宽调制(Space Vector Pulse Width Modulation)的简称,通常由三相逆变器的六个功率开关管组成,经过特定的时序和换相所所产生的脉冲宽度调制波,最终输出的波形可能会十分接近理想的正弦波形。具体如下图所示;左侧为复平面,即空间矢量,右侧为时域的正弦波形。 关于SVPWM原理的文章非常多,这里可以推荐一下网上一个非常不错的教程《SVPWM的原理及法则推导和控制算法详解第五修改版》,本文将如何实现SVPWM进行简单的介绍。 IQMATH TI的片子很香,控制方面,TI无疑是做的最好的方案之一,相对来说资料也非常齐全;另外TI针对没有浮点运算器的定点DSP推出了IQMATH
[单片机]