STM32入门系列-STM32最小系统介绍】的更多相关文章

STM32最小系统组成 单片机最小系统,也就是能够使得单片机正常运行程序,最少需要连接哪些器件.一般来说,STM32最小系统由四部分组成: 电源电路 复位电路 晶振电路 下载电路 STM32单片机由ARMCortexM3.总线矩阵.外设组成.单片机开发板能够做哪些事情是自己的选择.我们可以制作一款STM32最小系统核心开发板,当然根据实际项目的需求,加上单片机的某些特定外设模块. 简单说,要利用到STM32芯片所有引脚来设计具有特定或者通用功能的开发板.首先要把STM32最小系统画出来,之后再添…
之前的推文中说到,当使用一个外设时,必须先使能它的时钟.怎么通过库函数使能时钟呢?如需了解寄存器配置时钟,可以参考<STM32F10x中文参考手册>"复位和时钟控制(RCC)"章节,其中有详细的寄存器介绍.固件库已经把时钟相关寄存器的使能配置都封装好,放在stm32f10x_rcc.c和stm32f10x_rcc.h中.只需要打开stm32f10x_rcc.h文件,会发现有很多的宏定义和时钟使能函数的声明.这些时钟函数可大致分为三类.一类是外设时钟使能函数,一类是时钟源和倍…
在时钟树的讲解中我们知道,通过修改PLLMUL中的倍系数值(2-16)可以改变系统的时钟频率.在库函数中也有对时钟倍频因子配置的函数,如下: void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul); 第一个参数是PLL时钟源选择,例程中一般采用的都是HSE作为PLL的时钟源,可以设置为RCC_PLLSource_HSE_Div1/RCC_PLLSource_HSE_Div2.第二个参数就是倍频因子值可以是RCC_PLLMul…
时钟对于单片机来说是非常重要的,它为单片机工作提供一个稳定的机器周期从而使系统能够正常运行.时钟系统犹如人的心脏,一旦有问题整个系统就崩溃.我们知道STM32属于高级单片机,其内部有很多的外设,但不是所有外设都使用同一时钟频率工作,比如内部看门狗和RTC,它只需30KHz的时钟频率即可工作,所以内部时钟源就有多种选择.在前面章节的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,将STM32F1系统时钟设置为72MHz,然后进入主函数.那么这个系统时钟大小如何得…
在前面推文的介绍中,我们知道STM32系统复位后首先进入SystemInit函数进行时钟的设置,然后进入主函数main.那么我们就来看下SystemInit()函数到底做了哪些操作,首先打开我们前面使用库函数编写的LED程序,在system_stm32f10x.c文件中可以找到SystemInit()函数,SystemInit()代码如下: void SystemInit (void){/* Reset the RCC clock configuration to the default res…
片上外设区分为四条总线,根据外设速度的不同,不同总线挂载着不同的外设,APB1挂载低速外设,APB2和AHB挂载高速外设.相应总线的最低地址我们称为该总线的基地址,总线基地址也是挂载在该总线上的首个外设的地址.APB1总线的地址最低,因此片上外设就从这这个地址开始,也称外设基地址. 总线基地址 从存储器映射那张图的Block2可以看到,分为4大块,每块都有一个起始地址,这个起始地址就是基地址,然后到下一块起始地址的时候就会和前一块地址出现偏差,这个差值就是偏移量,即相对基地址的偏移量.如下图所示…
STM32芯片架构 STM32F103系列芯片的系统架构如下: STM32芯片基于ARM公司的Cortex-M3内核,由ST公司设计生产,内核与总线矩阵之间有I(指令).S(系统).D(数据)三条信号线.内核通过总线矩阵与FLASH.SRAM.外设连接.而外设包括GPIO.USART.I2C.SPI等. STM32芯片系统结构     STM32F103 系列芯片(不包含互联网型)的系统结构如下: 从上图可以看出,在小容量.中容量和大容量产品中,主系统由以下部分构 成: 四个驱动单元: Cort…
在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从"复位"到"开始执行 main 函数"中间这段启动时间所必须进行的工作.它完成的具体工作有: 初始化堆栈指针SP=_initial_sp 初始化PC指针=Reset_Handler 初始化中断向量表 配置系统时钟 调用C库函数_main初始化用户堆栈,从而转向我们用户应用程序的main. 汇编指令 打开STM32的启动文件会发现,里面全部都是汇编语句,对于汇编指令不了解的朋友来说可能一头雾水.下面我…
介绍两部分内容: 什么是存储器映射 什么是寄存器及寄存器映射 为了让大家对存储器与寄存器有一个更清楚的认识,并且为之后使用 C 语言来访问 STM32 寄存器内容打下基础.等明白了如何使用 C 语言封装底层寄存器,也就为后面学习库函数的开发做好了铺垫. 什么是存储器映射 程序存储器.数据存储器.寄存器和I/O端口排列在同一顺序的4GB地址空间内.这就是我们曾提到过的被控总线的连接部分,而编程时就是操作这一块地方.存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程称为…
主要介绍如下三部分内容: keil5软件获取 keil5安装 安装STM32芯片包 软件获取 可以通过搜索引擎搜索关键字"KEIL5下载",找到其官方网站www.keil.com.我们这里使用MDK5.14版本,如果后面出了更高的版本选择性升级即可,不过也没有必要什么都追求最新的,这一个软件用着习惯就行. 登录armkeil官方网站,网站首页有软件下载连接,在这里我们选择MDK-Arm.会让你先注册,注册完成之后就可以开始下载了. 软件安装 安装此软件时一定要注意以下几点: 安装路径不…