修改system_stm32Fxx.c文件,启动内部晶振代码

2020-06-29来源: eefocus关键字:system_stm32Fxx  c文件  内部晶振

从启动文件上分析,该函数在reset复位之后,进入main主函数之前,芯片调用该函数进行系统时钟的初始化和设置,对这段代码进行修改,就能实现启动内部晶体了。


void SystemInit (void)

{

/* Set HSION bit */

RCC->CR |= (uint32_t)0x00000001;


#if defined (STM32F031) || defined (STM32F072) || defined (STM32F042)

/* Reset SW[1:0], HPRE[3:0], PPRE[2:0], ADCPRE and MCOSEL[2:0] bits /

RCC->CFGR &= (uint32_t)0xF8FFB80C;

#else

/ Reset SW[1:0], HPRE[3:0], PPRE[2:0], ADCPRE, MCOSEL[2:0], MCOPRE[2:0] and PLLNODIV bits /

RCC->CFGR &= (uint32_t)0x08FFB80C;

#endif / STM32F031*/


/* Reset HSEON, CSSON and PLLON bits */

RCC->CR &= (uint32_t)0xFEF6FFFF;


/* Reset HSEBYP bit */

RCC->CR &= (uint32_t)0xFFFBFFFF;


/* Reset PLLSRC, PLLXTPRE and PLLMUL[3:0] bits */

RCC->CFGR &= (uint32_t)0xFFC0FFFF;


/* Reset PREDIV1[3:0] bits */

RCC->CFGR2 &= (uint32_t)0xFFFFFFF0;


/* Reset USARTSW[1:0], I2CSW, CECSW and ADCSW bits */

RCC->CFGR3 &= (uint32_t)0xFFFFFEAC;


/* Reset HSI14 bit */

RCC->CR2 &= (uint32_t)0xFFFFFFFE;


/* Disable all interrupts */

RCC->CIR = 0x00000000;


/* Configure the System clock frequency, AHB/APBx prescalers and Flash settings */

SetSysClock();

}

关键字:system_stm32Fxx  c文件  内部晶振 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic501500.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32 网络通信Web Server中 SSI与CGI的应用解析
下一篇:STM32之SWD连接配置说明

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

S3C2440声卡驱动移植、测试以及madplay播放mp3文件(三十一)
/soc/s3c24xx下的makefile指定的文件加入内核里5.2 将修改好的s3c-wm8976.c放入/linux-2.6.22.6/sound/soc/s3c24xx目录下5.3 修改该目录下的makefileobj-y += s3c2410-uda1341.o改为:obj-y += s3c-wm8976.o  5.4 make uImage,如下图所示,可以看到内核已经被编译5.5 最后下载并启动新的内核,如下图所示,可以看到该两个设备节点 6、测试与运行6.1 使用wav测试声卡wav是属于一个未经压缩的音频文件(无损),所以直接调用给我们声卡播放播放:     
发表于 2020-07-07
S3<font color='red'>C</font>2440声卡驱动移植、测试以及madplay播放mp3<font color='red'>文件</font>(三十一)
S3C2440的Keil启动文件S3C2440.s添加中断配置
前言本文主要描述如何在Keil自带的S3C2440.s文件中添加中断配置及中断地址映射,从而可以在中断产生时跳转到用户代码中的中断服务函数。目前在TQ2440开发板是实测可用。工程源代码下载本文所有代码都是截取代码,“…”代表其还有上下文。可根据代码中上下文的残缺部分找到该代码添加的位置。一,添加中断相关寄存器地址符号映射因为原始S3C2440.s文件中不含中断相关寄存器的地址,所以需要在开头添加:...; *  RAM_INTVEC: when set the startup code copies exception vectors ; *  from execution address to
发表于 2020-06-09
s3c2440的2440init.s详解
;=========================================; NAME: 2440INIT.S; DESC: C start up codes;       Configure memory, ISR ,stacks;        Initialize C-variables; HISTORY:; 2002.02.25:kwtark: ver 0.0; 2002.03.20:purnnamu: Add some functions for testing STOP,Sleep mode; 2003.03.14:DonGo
发表于 2020-05-08
MY2410开发板(S3C2410)INC文件1----2410addr.h
#ifndef __2410ADDR_H__#define __2410ADDR_H__#ifdef __cplusplusextern "C" {#endif#include "option.h"// Memory control#define rBWSCON    (*(volatile unsigned *)0x48000000) //Bus width & wait status#define rBANKCON0  (*(volatile unsigned *)0x48000004) //Boot ROM control#define
发表于 2020-04-22
c语言多文件 6410 led裸机程序
Isr_Eint11(void); #ifdef __cplusplus}#endif #endif //__GPIO_H__这个gpio.h 可以参照三星的示例程序自己改写,可以试一下,很简单。发现的问题:c语言的宏定义,在gpio.c 中定义的  结构体,宏定义 只能只啊.c文件中使用,通过.h 后不能使用。所以,这个变量和宏定义当要在多个文件中使用时,可以定义在.h 文件中,或是 用include“xx.c”(不推荐!!!)。
发表于 2020-03-09
STM8L之内部16M晶振
简介本文介绍STM8L系列如何分别实现内部的16M晶振的使用。实验平台编译软件:IAR for STM8 1.42.2硬件平台:stm8l101f3p6开发板仿真器:ST-LINK库函数版本:STM8L_STMTouch_Lib_V1.1.0实验步骤1、工程中添加自己写的时钟的驱动1)写一个驱动GUA_Clk.c (存放在工程的USER文件夹中)//******************************************************************************                 
发表于 2019-12-18
STM8L之<font color='red'>内部</font>16M<font color='red'>晶振</font>
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved