STM32单片机应用与全案例实践(第2版)课件 第1章 如何学习STM32_第1页
STM32单片机应用与全案例实践(第2版)课件 第1章 如何学习STM32_第2页
STM32单片机应用与全案例实践(第2版)课件 第1章 如何学习STM32_第3页
STM32单片机应用与全案例实践(第2版)课件 第1章 如何学习STM32_第4页
STM32单片机应用与全案例实践(第2版)课件 第1章 如何学习STM32_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章如何学习STM32如何学习STM321本章学习内容STM32的基本架构和基本原理学习STM32的基本方法学习STM32需要的工具或平台STM32程序开发的几种模式STM32的基本架构和基本原理学习STM32的基本方法主要内容重点难点如何学习STM322STM32的基本架构和基本原理

如果你有8位单片机的学习、应用经历,你又熟练掌握C语言,那么你一点不用怕,学会和掌握STM32单片机并不难,有人说难,其实只是“传说”。

如果没有学过8位单片机,直接开始学STM32,也不可怕。关键是要“得法”:先粗后细、先大后小。当然,C语言是必须的!如何学习STM323STM32的基本架构和基本原理

要弄懂STM32的基本原理,必须基本弄清楚以下三个问题:一、STM32的内部结构二、STM32时钟树

三、典型型号STM32F103及其特性STM32内部有哪些东西?分别有啥用?如何才能让它工作?(初始化、时钟设置、工作流程)如何学习STM324STM32的基本架构和基本原理STM32跟其他单片机一样,是在一个芯片上集成了计算机或微控制器该有的基本功能部件。这些功能部件通过总线联在一起。这些功能部件主要包括:内核CPU,总线,系统时钟发生器,复位电路,程序存储器,数据存储器,中断控制,调试接口,以及各种功能部件(外设)。

不同的芯片系列和型号,外设的数量和种类也不一样,常见的外设有:输入输出接口GPIO、定时器TIMER/COUNTER、串行通信接口USART、串行总线I2C和SPI或I2S、SD卡接口SDIO、ADC、DAC等。如何学习STM325STM32的基本架构和基本原理内核CPU,系统时钟发生器,复位电路,程序存储器,数据存储器:相当于单片机最小系统总线:CPU与外设进行信息交互的通道,有多种中断控制:中断程序的优先级、使能设置调试接口:上位机调试与烧写程序的接口(仿真器接口)各种功能部件(外设):例如,输入输出GPIO、定时器TIMER、串行通信接口USART、串行总线I2C和SPI或I2S、ADC、DAC等,用以实现项目的有关功能如何学习STM326STM32的基本架构和基本原理STM32的内部结构示意图内核各种总线各种功能外设CPU通过相应的总线与功能外设进行信息交互如何学习STM327STM32的基本架构和基本原理STM32的内部结构示意图Cortex是ARM的全新一代处理器内核,它在本质上是ARMv7架构的实现,它完全有别于ARM的其他内核。按照三类典型的嵌入式系统应用,即高性能、微控制器、实时类,它又分成三个系列,即Cortex-A、Cortex-M、Cortex-R。STM32是意法半导体(ST)较早推向市场的基于Cortex-M内核的微处理器系列产品,该系列产品具有成本低、功耗优、性能高、功能多等优势,以系列化方式推出,方便用户选型,在市场上获得了广泛好评。STM32F1XX系列,STM32F4XX系列。前者Cortex-M3内核,后者Cortex-M4内核。如何学习STM328STM32的基本架构和基本原理STM32的内部结构示意图CPU通过各种总线与存储器、外设等进行信息交互(发送指令、读取状态、发送数据等)外设有:低速外设高速外设总线矩阵用于各种总线的匹配与交换Icode、Dcode、DMA、System、APB2、APB1等各种总线如何学习STM329STM32的基本架构和基本原理

CPU总线外设外设的工作速率通过各自的时钟设定程序通过设定外设的速度、中断方式、DMA方式、工作方式、等等实现系统功能工作方式通过初始化相关寄存器参数实现中断方式通过设置中断相关寄存器实现难在:寄存器的设置,因为:不同的外设拥有各自的寄存器,通常都有10个以上。相比于传统51单片机全部寄存器加起来只有30+,理解和使用的难度大大增加。不怕:ST公司通过固件库形式把寄存器的设置、操作简化了,即将对寄存器的操作通过“函数”封装起来。只要会使用函数,就应该能写程序!外设多每个外设寄存器多每个寄存器的每一位设置都有讲究中断与非中断方式差异大中断级数和中断数量多寄存器:可怕如何学习STM3210STM32典型型号——STM32F103ZET6

对于STM32F103xxyy系列,命名规则:第一个x代表引脚数:T-36pin,C-48pin,R-64pin,V-100pin,Z-144pin;第二个x代表Flash容量:6-32K,8-64K,B-128K,C-256K,D-384K,E-512K;第一个y代表封装:H-BGA封装,T-LQFP封装,U-QFN封装;第二个y代表工作稳度范围:6代表-40到85摄氏度,7代表-40到105摄氏度。STM32F表示通用类型产品子系列;STM32L表示低功耗产品子系列;STM32F0基于Cortex-M0+高性价比子系列;STM32F4表示更高性能子系列101=基本型,102=USB基本型,USB2.0全速设备

103=增强型,105或107=互联型引脚数目如何学习STM3211STM32典型型号——STM32F103ZET6

根据程序存储容量分为三大类:LD(小于64K),MD(小于256K),HD(大于256K)。STM32F103ZET6属第三类32

位微控制器,LQFP-144封装高达72M

的系统频率通过片内BOOT区,可实现串口下载程序(ISP)片内双RC

晶振,提供8MHz和40kHz

的频率支持片外高速晶振(8M),和片外低速晶振(32k)。其中片外低速晶振可用于

CPU

的实时时钟,带后备电源引脚,用于掉电后的时钟行走42个16位的后备寄存器(可以理解为电池保存的RAM)支持

JTAG、SWD调试,在J-LINK的配合下,实现高速低成本的开发调试如何学习STM3212STM32典型型号——STM32F103ZET6

3个共16通道的12位ADC,2个共2

通道的12位

DAC,支持片外独立电压基准。ADC转换速率最高可达1us。多达80个GPIO(大部分兼容5V逻辑);4个通用定时器,2个高级定时器,2个基本定时器;3路SPI接口;2路I2S

接口;2路I2C接口;5路USART;1个USB从设备接口;1个CAN接口;1个SDIO接口;可兼容SRAM、NOR和NANDFlash

接口的16位总线的可变静态存储控制器(FSMC)。工作电压范围:2.0~3.6V512K

片内FLASH(程序存储器)64K片内RAM(数据存储器)统一编址(STM32为哈佛结构)如何学习STM3213STM32的时钟树

在数字系统中,所有部件要正常工作,离不开时钟。STM32的时钟是学习、应用的难点和重点。难:

时钟系统复杂、灵活

时钟源多(片内、片外)

选择设置多样重:

每个外设都必须要使用时钟学习时钟首先从STM32的时钟类型入手,从理解几个重要的概念起步。时钟树:从时钟输入到输出的拓扑关系图

看懂

每种外设的时钟配置——掌握正确设置如何学习STM3214STM32的时钟树

要点一:内部RC振荡器与外部晶振的选择STM32可以选择:

内部时钟(内部RC振荡器)

外部时钟(外部晶振)内部8MHz的RC振荡器的误差在1%左右,内部RC振荡器的精度通常比用HSE(外部晶振)要低十倍以上。STM32的ISP就是利用HSI(内部RC振荡器)。使用内部时钟,要注意正确使用相关引脚:100脚、144脚的型号:OSC_IN应接地,OSC_OUT应悬空。少于100脚的产品,有2种接法:方法1:OSC_IN和OSC_OUT分别通过10K电阻接地。此法可提高EMC性能方法2:分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出0。此方法相对于方法1,可以减小功耗并节省2个外部电阻如何学习STM3215STM32的时钟树

要点二:五个时钟源——HSI、HSE、LSI、LSE、PLL——HSI是高速内部时钟,RC振荡器,频率为8MHz。——HSE是高速外部时钟,可接石英谐振器、陶瓷谐振器,或者直接外部时钟源,它的频率范围为4MHz~16MHz。——LSI是低速内部时钟,RC振荡器,频率为40kHz。——LSE是低速外部时钟,接频率为32.768kHz的石英晶体。——PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。如何学习STM3216STM32的时钟树

要点三:五个时钟概念SYSCLK:系统时钟,STM32大部分器件的时钟来源。主要由AHB预分频器分配到各个部件。

HCLK:由AHB预分频器直接输出得到,它是高速总线AHB的时钟信号,提供给存储器,DMA及Cortex内核,是Cortex内核运行的时钟,CPU主频就是这个信号,它的大小决定STM32运算速度、数据存取速度。

FCLK:由AHB预分频器输出得到,是内核的“自由运行时钟”(freerunningclock)。“自由”表现在它不来自时钟HCLK,因此在HCLK时钟停止时FCLK也继续运行。它保证在处理器休眠时,也能够采样到中断和跟踪休眠事件。它与HCLK互相同步。PCLK1:外设时钟,由APB1预分频器输出得到,最大频率为36MHz,提供给挂载在APB1总线上的外设(低速外设)。

PCLK2:外设时钟,由APB2预分频器输出得到,最大频率可为72MHz,提供给挂载在APB2总线上的外设(高速外设)。如何学习STM3217STM32的时钟树

要点四:读懂时钟树——从哪里来到哪里去从时钟树图中截取以下部分,举例说明时钟的使用如何学习STM3218STM32的时钟树

要点四:读懂时钟树——从哪里来到哪里去说明时钟输入与始终输出之间的关系,输入至输出之间有两种方案:——方案一:可表示为

①-②-③-④-⑤-⑥-⑦——方案二:可表示为①-⑤-⑥-⑦。最终到达形成(得到)APB2那么挂在APB2上的外设就可以使用方案1或2进行时钟的设定APB2总线上的外设有:(根据图1.1)GPIO_A-E、USART1、ADC1、ADC2、ADC3、TIM1、TIM8、SPI1、AFIO等,均为高速外设如何学习STM3219学STM32的最好方法是什么

学中做,做中学——边学边做

►初步了解STM32的内部结构和工作原理——粗线条►了解ST的固件库及其使用►先会使用现成的工程模板►从模仿点亮一个LED灯的程序开始,熟悉程序开发完整过程►在模仿的基础上,适当进行改造,例如:增加关闭功能,

从而进一步巩固开发过程,熟悉模板使用,基本理解固件

函数的应用方法►大胆写出自己的第一个程序:按键控制LED的点亮与熄灭要用到什么,就去学习什么,例如:要用到定时器就去看定时器的原理、设置,固件库函数及其使用。蚂蚁搬家式学习可降低困难,是学习的好方法。ST官方提供工程模板中有个帮助系统——范例学习,大赞!上述过程,让你找到感觉,建立信心如何学习STM3220学STM32需要哪些工具或平台

硬件平台和工具——►STM32实验板、JLINK仿真器、万用表►电烙铁、杜邦线一个简单实用的好的学习平台,会使你学习STM32之路充满愉悦和成就感。人手一套是极好的。所以,请你舍得投入!数字式万用表——►建议国产的品牌:VICTOR890(胜利牌,最常用的型号890C或D)►必须学会熟练使用。例如,测量电路通断,测量电压电烙铁——►建议国产的品牌:黄花岗30W内热电烙铁套装►必须熟练掌握焊接技术如何学习STM3221舍不得孩子套不住“狼”学STM32需要哪些工具或平台

可以是最小系统板。但必须具有JTAG或SWD仿真接口。淘宝上这样的实验板很多:价格从10几元到几百元不等,根据各自情况选用,能满足学习需要就行。STM32实验板——自制或购买淘宝网上看到的一款STM32最小系统板,零售价才19元。但是随带的资料很丰富,基本功能齐全,结构很完整、开放。具有JTAG和SWD两种仿真接口。自己喜欢就好如何学习STM3222学STM32需要哪些工具或平台

——CPU及其外围本书使用的STM32最小系统如何学习STM3223学STM32需要哪些工具或平台

——手动复位本书使用的STM32最小系统如何学习STM3224学STM32需要哪些工具或平台

——按键与指示灯本书使用的STM32最小系统如何学习STM3225学STM32需要哪些工具或平台

——JTAG接口本书使用的STM32最小系统如何学习STM3226JTAG接法

——电源电路学STM32需要哪些工具或平台

常用的型号是J-linkV8、V9、V10等JLINK仿真器——网上购买兼容型号,很便宜淘宝网上看到的一款仿制型JLINK仿真器(它的价格是约40元)具有JTAG和SWD两种仿真接口配上转接板(8元左右)即可使用SWD仿真接口如何学习STM3227STM32程序开发的4种模式

通常,单片机是通过一个死循环将需要实现的功能通过查询或中断的方式组织起来。这种架构模式适用于程序功能较为单一的应用场景。它具有原理简单、开发方便、容易理解等特点。是单片机初学者和一般开发者优先的方式。程序开发模式:►基于HAL库的开发►基于ST公司官方提供的固件库开发程序架构模式:►单任务大循环模式►嵌入式操作系统的模式然而,在单片机系统中嵌入操作系统适用于功能较为复杂的应用场景。这种方式在硬件要求较高,开发者必须全面掌握操作系统原理。不主张作为学习者优先方式。哥,我都怕死你了,我还会爱你吗?本节重点讨论STM32程序的这两种开发模式及其各自的特点注意比较如何学习STM3228STM32程序开发的4种模式

基于HAL库的开发模式——优点►

开发更加简便、高效►程序移植性好(更换不同型号芯片时)基于HAL库的开发模式——缺点►HAL库的函数嵌套和结构体多,占用程序空间大,效率相对较低►自主性弱(图形化的代码生成,对内部细节的把握就弱了)事物总是有两面性你爱她,就得容忍她的缺点。啊~啊&@#@&*!如果,你有不怕牺牲、克服困难的决心和毅力,你就爱她。那么,她会把心全部献给你——让你对STM32的底层彻底掌握,不再恐惧。恐惧之后不再恐惧!如何学习STM3229STM32程序开发的模式

基于寄存器的开发模式——要具备两个功夫►熟悉所使用的功能外设的初始化设置流程、读写方法►熟悉所涉及寄存器的功能、每个寄存器位的定义与作用基于寄存器的开发模式——读写操作方法赋值语句设置或获取相关寄存器的值爱我,你怕了吗?其实,不用怕,寄存器虽然多,虽然烦,但是只要有耐心,用到什么,去学习什么,分而治之,还是能攻克这个“堡垒”的!很多时候,我们是被道听途说的“传言”吓死的。如何学习STM3230STM32程序开发的模式

基于固件库的开发模式——优点►对硬件的理解要求相对较低,会调用函数就会写程序,容易上手►程序代码容错性好,后期维护相对简单基于固件库的开发模式——缺点►程序冗余较多,代码相对会大一些,运行速度相对会有所影响►从更深透掌握STM32内部原理的角度而言,不如寄存器模式为了快速入门,早点领略STM32的绰约风姿,你就选择我这种模式吧。这是多数初学者的选择,要相信群众。选择我,不后悔!如何学习STM3231STM32程序开发的模式

基于固件库的开发模式——要具备两个功夫►要有耐心,要学会看STM32的固件库官方手册和帮助系统的范例程序►要学会所用固件库函数的功能与调用基于固件库的开发模式——读写操作方法通过函数调用以设置或获取相关寄存器的值记住——耐心、细心、爱心是学好STM32的可爱品质如何学习STM3232STM32程序开发的模式

关于工程模板,我有话说——〓为什么要使用模板基于标准库和寄存器模式都要使用工程模板。良好的工程结构能让文件的管理更科学,让开发更容易更方便。使用具有合理结构的工程目录,当你着手于较大的软件项目时,类别分明、层次合理的工程目录结构会让你的开发管理化繁为简。〓寄存器模式下和固件库模式下的模板理论上说,两种模式下的模板应该不一样,可以不一样。对于初学者,先直接使用固件库模式下的模板作为两个模式下的工程模板。先不要花太多的精力在此上!如何学习STM3233STM32程序开发的模式

两种模式的比较——以点亮一个LED为例〓寄存器模式►ODR寄存器法GPIOE->ODR|=1<<5; //PE5、6初始化为高电平GPIOE->ODR|=1<<6; //PE5、6初始化为高电平

GPIOE->ODR&=0xFFFFFF9F; //PE5、6初始化为低电平►BSRR寄存器法GPIOE->BSRR|=0x00600000; //清零PE5,PE6►BRR寄存器法GPIOE->BRR|=0x00000060; //清零PE5,PE6系统初始化、GPIO初始化完成后,要点亮或关闭LED的本质是,使得LED对应的GPIO口线为高电平、低电平。以下是两种模式下使引脚输出高电平、低电平的实现方法。如何学习STM3234使用赋值运算实现STM32程序开发的模式

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论