历史上的今天
今天是: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 用于设置各种中断的优先级、与向量表的地址等等
史海拾趣
|
有意思的对比:看看最早的便携式示波器和当今最先进的示波器 上市时间:1946年 型号:泰克511型示波器 重量:约22.5千克 主要特性:10~10 MHz的脉冲观察,带有触发扫描功能,最快的扫描速度为1微秒/区(够 ...… 查看全部问答> |
|
在仿真时,使用了p3.6,p3.7这两个地址线作为和液晶显示器的连线,分别作为地址线和读写线,在程序中实际上把他们作为IO口,通过付0或1,来把控制指令和数据写入显示器,但在仿真时,改变这两个口的值时,RAM的所有值都被写成了0xff或0x30,使得我所要用到的 ...… 查看全部问答> |
|
能不能在板块中加入测评贴,对芯片性能进行测评,或者与相类似的芯片进行对比,分析性能,给出专业数据。对开发者选型有很大帮助,比如哪一个方面性能优越,哪一方面是劣势等等。… 查看全部问答> |
|
CCS中可以给变量分配固定地址,C语言对应语法为:#pragma DATA_SECTION ( symbol , \" section name \" );对应的使用例子为:#pragma DATA_SECTION(bufferB, \"my_sect\") char bufferA[512]; char bufferB[512];而其中的 my_sect是在对应工程的c ...… 查看全部问答> |
|
作为想学MSP430单片机的初学者,或者,你是刚转到电子硬件嵌入式开发,如果你的电子基础课程已经完成,想尽快掌握MSP430单片机,又纠结于怎样尽快闯入MSP430学习过程的问题,现总结整理出新手开始学习MSP430的一些问题,和学习中有关 ...… 查看全部问答> |
|
本帖最后由 dontium 于 2015-1-23 11:28 编辑 数模转换器,又称D/A转换器,简称DAC,它是把数字量转变成模拟的器件。 D/A转换器的主要特性指标包括以下几方面: ◆分辨率; ◆线性度; ◆转换精度:影响转换精度的主要因素有失调误差、增益误 ...… 查看全部问答> |




