历史上的今天
返回首页

历史上的今天

今天是:2024年12月21日(星期六)

2018年12月21日 | stm32篇--系统初始化

2018-12-21 来源:eefocus

跟着程序执行流程走,main是程序入口,在里面进行了各种初始化。


1.时钟配置

      首先是RCC_Configuration(),里面进行了时钟基本的初始化,stm32有多个时钟源:(1)HSI上电默认启动,精度不高(2)HSE外部高速时钟,系统时钟一般采用它,经过PLL倍频;(3)LSE外部低速时钟,一般专门用于RTC;(4)LSI内部低速时钟,精度不高,一般用于IWDGCLK;



void RCC_Configuration(void)

{

  RCC_DeInit();//复位RCC成缺省值

  RCC_HSEConfig(RCC_HSE_ON);//开启HSE的时钟作为PLL的时钟源

  HSEStartUpStatus = RCC_WaitForHSEStartUp();//获取HSE时钟状态

  if(HSEStartUpStatus == SUCCESS)//如果HSE启动成功

  {

    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//开启FLASH的预取功能

    RCC_HCLKConfig(RCC_SYSCLK_Div1);   //配置HCLK,PCLK2,PCLK1,PLL

    RCC_PCLK2Config(RCC_HCLK_Div1); 

    RCC_PCLK1Config(RCC_HCLK_Div1);

    RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);

    while(RCC_GetSYSCLKSource() != 0x04)//检查是否将HSE 倍频后作为系统时钟

    {

    }

  }

 }


   这样,时钟就初始化好了,先复位RCC,然后配置各个时钟源,获取状态并等待成功。如果我们想使用某个功能或引脚,要开启相关时钟源。

 

2.中断向量设置


void NVIC_Configuration(void)

{

#ifdef  VECT_TAB_RAM  

  /* Set the Vector Table base location at 0x20000000 */ 

  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 

#else  /* VECT_TAB_FLASH  */

  /* Set the Vector Table base location at 0x08000000 */ 

  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   

#endif

}

NVIC_SetVectorTable 设置向量表的位置和偏移

NVIC_ VectTab                描述

NVIC_VectTab_FLASH      向量表位于FLASH

NVIC_VectTab_RAM         向量表位于RAM 用于设置各种中断的优先级、与向量表的地址等等

推荐阅读

史海拾趣

华大北斗(Allystar)公司的发展小趣事

在电子行业中,华大北斗(Allystar)公司以其卓越的技术实力和市场表现脱颖而出,其发展历程中充满了许多引人注目的故事。以下是关于华大北斗发展起来的五个相关故事:

一、华大北斗的南迁之旅

华大北斗的发展史上,一个重要的节点是2016年的南迁。当时,华大北斗主动选择深圳作为新的研发总部所在地,这是基于深圳电子制造业的雄厚基础和良好的创新环境。在短短几个月内,华大北斗完成了研发环境的选址与装修、研发团队的组建以及实验设备的部署,展现了其高效的执行力。这一举措得到了深圳市政府及各级领导的高度关注与认可,华大北斗也被列为深圳市重点引进的战略项目。

二、北斗芯片技术的突破

华大北斗在北斗芯片技术方面取得了重大突破。公司成功研发出支持北斗三号信号体制的多系统多频高精度SoC芯片,这一成果在芯片多频定位方面取得了重要进展。该芯片集成了射频、基带、处理器、存储器等单元,不仅大幅缩小了芯片尺寸,还优化了功耗,实现了单芯片双频北斗高精度定位一体化SoC解决方案。这一技术的突破为北斗应用的自主可控提供了关键支持,推动了北斗产业化、国际化、规模化应用的进程。

三、高精度芯片进入共享单车市场

随着共享经济的兴起,共享单车市场蓬勃发展。华大北斗凭借其高精度芯片技术,成功进入了共享单车市场。其高精度芯片为共享单车提供了精准的定位服务,有效提升了用户体验和车辆管理效率。这一成功应用不仅展示了华大北斗技术的市场竞争力,也为其在更多领域的应用提供了广阔的空间。

四、双频北斗手机的面市

基于华大北斗双频北斗芯片研发的全球首款双频北斗手机的面市,是华大北斗发展历程中的又一里程碑。这款手机的推出,标志着北斗导航技术在智能手机领域的成功应用,也展示了华大北斗在推动北斗产业化进程中的积极作用。双频北斗手机的出现,不仅提升了用户体验,也为北斗导航技术的普及和推广做出了贡献。

五、斩获香港环球创新奖

2023年,华大北斗荣获首届香港环球创新奖年度创新大奖,这是对其在北斗导航芯片领域技术创新和产业化应用的高度认可。这一奖项的获得,不仅提升了华大北斗的品牌形象和市场影响力,也为其在未来的发展中注入了强大的动力。华大北斗将继续坚持技术创新,针对行业应用的不同需求,用领先的技术研发和应用能力推动北斗产业的高质量规模化发展。

这些故事只是华大北斗发展历程中的一部分,但它们足以展现出华大北斗在电子行业中的技术实力和市场竞争力。华大北斗将继续秉持创新精神,不断推动北斗导航技术的发展和应用,为电子行业的进步做出更大的贡献。

CONTRINEX公司的发展小趣事

在数控加工领域,Contrinex的数字测量智能传感器带来了革命性的变革。这些先进的传感器能够精确实时地测量拉杆位置,通过智能决策,确保加工精度,防止潜在损坏。其卓越的性能和稳定性,使得Contrinex在这一领域取得了显著的成绩,并赢得了众多客户的赞誉。

台湾美丽微(FMS)公司的发展小趣事

随着市场的不断拓展,FTDI也面临着诸多挑战,包括如何吸纳优秀的技术人才、打击假冒芯片以及提供本地化的技术支持等。为了应对这些挑战,FTDI采取了多项措施,包括引进经验丰富的工程师和潜力大学毕业生充实技术团队,加强对本地分销商的培训,以及增加对重点应用市场的技术支持力度。这些措施不仅提升了FTDI的技术实力和市场响应速度,也进一步巩固了其在全球市场的地位。

DBLECTRO公司的发展小趣事

进入21世纪后,随着全球对环保和可持续发展的关注度不断提高,迪贝电子也积极响应这一趋势,将环保和社会责任融入到企业的经营理念中。公司投入大量资金研发更加环保、节能的产品,并积极参与各种环保公益活动。同时,迪贝电子还积极推广绿色制造理念,通过优化生产流程、降低能耗和减少废弃物排放等措施,实现了企业的可持续发展。

Amecon Magnetics公司的发展小趣事

为了进一步扩大市场份额和提升竞争力,Amecon Magnetics公司积极寻求与行业内外的合作伙伴建立战略合作关系。通过与知名电子企业、科研机构以及上下游企业的紧密合作,公司不仅获得了更多的市场资源和技术支持,还成功将产品推广至更广泛的应用领域。这种合作与共赢的战略布局为公司的快速发展奠定了坚实的基础。

Decawave公司的发展小趣事

在2015年的微软室内定位大赛中,Decawave的UWB技术大放异彩。公司凭借其高精度、低误差的UWB定位解决方案,在激烈的竞争中脱颖而出,荣获最佳无线电定位解决方案奖。这一荣誉不仅证明了Decawave在UWB技术领域的领先地位,也为其在市场上的推广和应用奠定了坚实的基础。

问答坊 | AI 解惑

刚找到了一份SD卡和资料

刚找到了一份SD卡和资料,不敢独享 ^0^…

查看全部问答>

穿越时空的PK:最早的便携式示波器和最先进的现代示波器

有意思的对比:看看最早的便携式示波器和当今最先进的示波器      上市时间:1946年 型号:泰克511型示波器 重量:约22.5千克   主要特性:10~10 MHz的脉冲观察,带有触发扫描功能,最快的扫描速度为1微秒/区(够 ...…

查看全部问答>

关于使用easypack仿真器的一个问题

在仿真时,使用了p3.6,p3.7这两个地址线作为和液晶显示器的连线,分别作为地址线和读写线,在程序中实际上把他们作为IO口,通过付0或1,来把控制指令和数据写入显示器,但在仿真时,改变这两个口的值时,RAM的所有值都被写成了0xff或0x30,使得我所要用到的 ...…

查看全部问答>

12864液晶串口怎么不行呢

我这几天很纳闷,mege16 串口操纵12864液晶,单用三条线可以,但用排线就是不行 ,是不是排线的问题啊…

查看全部问答>

【TI建议】能不能在板块中加入测评贴

能不能在板块中加入测评贴,对芯片性能进行测评,或者与相类似的芯片进行对比,分析性能,给出专业数据。对开发者选型有很大帮助,比如哪一个方面性能优越,哪一方面是劣势等等。…

查看全部问答>

C2000编译这是神马情况?

希望大虾们能够帮帮忙…

查看全部问答>

CCS中给变量分配固定地址

CCS中可以给变量分配固定地址,C语言对应语法为:#pragma DATA_SECTION ( symbol , \" section name \" );对应的使用例子为:#pragma DATA_SECTION(bufferB, \"my_sect\") char bufferA[512]; char bufferB[512];而其中的 my_sect是在对应工程的c ...…

查看全部问答>

【分享】如何由51快速转到MSP430的学习过程

    作为想学MSP430单片机的初学者,或者,你是刚转到电子硬件嵌入式开发,如果你的电子基础课程已经完成,想尽快掌握MSP430单片机,又纠结于怎样尽快闯入MSP430学习过程的问题,现总结整理出新手开始学习MSP430的一些问题,和学习中有关 ...…

查看全部问答>

DA转换器DAC8560简介及使用

本帖最后由 dontium 于 2015-1-23 11:28 编辑 数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。 D/A转换器的主要特性指标包括以下几方面: ◆分辨率; ◆线性度; ◆转换精度:影响转换精度的主要因素有失调误差、增益误 ...…

查看全部问答>