电子拜年贺卡在线制作网站,中山网站建设排名,可以发布外链的网站,做简历网站知乎目录 前言
首先说明一下芯片内部并没有时钟#xff0c; 而是内部振荡。使用内部振荡的好处是外部无需设计晶振电路 #xff0c;再说的简单点 #xff0c;不用外部晶振依然可以让单片机正常运转。
环境#xff1a;
芯片#xff1a;STM32F103C8T6
Keil#xff1a;V5.24…目录 前言
首先说明一下芯片内部并没有时钟 而是内部振荡。使用内部振荡的好处是外部无需设计晶振电路 再说的简单点 不用外部晶振依然可以让单片机正常运转。
环境
芯片STM32F103C8T6
KeilV5.24.2.0 1.打开任意keil工程.打开system_stm32f10x.c 2.找到systeminit函数 全部注释掉 3.然后粘贴以下代码 #define USE_HSI 1 // 是否使用内部晶振 0 不使用 1使用
void SystemInit ( void )
{#if USE_HSI{
//设置使用内部晶振/* 开启HSI 即内部晶振时钟 */RCC-CR | ( uint32_t ) 0x00000001;/*选择HSI为PLL的时钟源HSI必须2分频给PLL*/RCC-CFGR | ( uint32_t ) RCC_CFGR_PLLSRC_HSI_Div2;/*PLLCLK8/2*936MHz 设置倍频得到时钟源PLL的频率*/RCC-CFGR | ( uint32_t ) RCC_CFGR_PLLMULL6; //设置倍频后的频率/* PLL不分频输出 ?*/RCC-CFGR | ( uint32_t ) RCC_CFGR_HPRE_DIV1;/* 使能 PLL时钟 */RCC-CR | RCC_CR_PLLON;/* 等待PLL时钟就绪*/while ( ( RCC-CR RCC_CR_PLLRDY ) 0 ){}/* 选择PLL为系统时钟的时钟源 */RCC-CFGR ( uint32_t ) ( ( uint32_t ) ~ ( RCC_CFGR_SW ) );RCC-CFGR | ( uint32_t ) RCC_CFGR_SW_PLL;/* 等到PLL成为系统时钟的时钟源*/while ( ( RCC-CFGR ( uint32_t ) RCC_CFGR_SWS ) ! ( uint32_t ) 0x08 ){ }}
#else{
//设置使用外部8M晶振/* Reset the RCC clock configuration to the default reset state(for debug purpose) *//* Set HSION bit */RCC-CR | ( uint32_t ) 0x00000001;/* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
#ifndef STM32F10X_CLRCC-CFGR ( uint32_t ) 0xF8FF0000;
#elseRCC-CFGR ( uint32_t ) 0xF0FF0000;
#endif /* STM32F10X_CL *//* Reset HSEON, CSSON and PLLON bits */RCC-CR ( uint32_t ) 0xFEF6FFFF;/* Reset HSEBYP bit */RCC-CR ( uint32_t ) 0xFFFBFFFF;/* Reset PLLSRC, PLLXTPRE, PLLMUL and USBPRE/OTGFSPRE bits */RCC-CFGR ( uint32_t ) 0xFF80FFFF;#ifdef STM32F10X_CL/* Reset PLL2ON and PLL3ON bits */RCC-CR ( uint32_t ) 0xEBFFFFFF;/* Disable all interrupts and clear pending bits */RCC-CIR 0x00FF0000;/* Reset CFGR2 register */RCC-CFGR2 0x00000000;
#elif defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)/* Disable all interrupts and clear pending bits */RCC-CIR 0x009F0000;/* Reset CFGR2 register */RCC-CFGR2 0x00000000;
#else/* Disable all interrupts and clear pending bits */RCC-CIR 0x009F0000;
#endif /* STM32F10X_CL */#if defined (STM32F10X_HD) || (defined STM32F10X_XL) || (defined STM32F10X_HD_VL)
#ifdef DATA_IN_ExtSRAMSystemInit_ExtMemCtl();
#endif /* DATA_IN_ExtSRAM */
#endif/* Configure the System clock frequency, HCLK, PCLK2 and PCLK1 prescalers *//* Configure the Flash Latency cycles and enable prefetch buffer */#ifdef VECT_TAB_SRAM. SCB-VTOR SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM. */
#else3 SCB-VTOR FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH. */
#endif}#endif
}
测试频率为24Mhz,功能是正常的 总结