【STM32单片机学习】第一课:STM32那些你该知道的事儿

【朱老师课程总结 侵删】

第一部分、章节目录

3.1.1.STM32和STC51开发

3.1.2_3.STM32的来历背景

3.1.4.STM32简单中文手册带读

3.1.5.STM32的各种仿真器调试器是怎么回事

3.1.6.STM32的标准外设库、 HAL库、LL库

3.1.7.本课程使用的开发板介绍


第二部分、章节介绍

3.1.1.STM32和STC51开发
    本节对STM32相关的3季课程做了整体介绍,并且对STM32学习和51单片机的不同做了概括性总结,希望对大家之后的学习有所指引。
3.1.2.STM32的来历背景1
    本节讲述STM32单片机的特点、厂家信息、官网、选型等,让大家对STM32有个概况了解。不要小看这些东西,很多人学了几年还不知道到哪里找基本资料。
3.1.3.STM32的来历背景2
    本节讲述STM32单片机的特点、厂家信息、官网、选型等,让大家对STM32有个概况了解。不要小看这些东西,很多人学了几年还不知道到哪里找基本资料。
3.1.4.STM32简单中文手册带读
    本节开始带大家来读普中开发板中提供的一个中文版的STM32官方版本的简易芯片手册,通过该芯片手册可以对STM32有更全面具体的一个认识。
3.1.5.STM32的各种仿真器调试器是怎么回事
    本节讲仿真器和调试器这2个概念,然后介绍本课程将会涉及到的几种调试器。
3.1.6.STM32的标准库和HAL(cubeMX)库是怎么回事
    本节重点介绍STM32的2种库函数开发模式,标准库和HAL库,弄清概念才好安排后续学习。
3.1.7.本课程使用的开发板们介绍
    本节介绍课程中涉及到的三种开发板,课程讲解会照顾到三种开发板的不同,大家不管有哪种开发板在手都可以学习课程不受影响。    

第三部分、随堂记录

3.1.1.STM32和STC51开发

3.1.1.2、区别

  • STM32的时钟需要配置、STC51不需要配置
  • GPIO控制:STC51只需要用位变量对引脚或者端口赋值,STM32需要对寄存器进行编程!
  • 而这外设基本相同,所以先学习STC51单片机,再学习STM32,就会比较轻松!
  • STM32的主频可以达到72MHz

3.1.2_3.STM32的来历背景

3.1.2.1.从51到STM32
(1)单片机有很多种,咱们在单片机课程中讲过,像STM32、AVR、51等等
(2)STM32是当前主流的32位高性能单片机,每年有20多亿片的出片量
(3)STM32的内核是ARM处理器,但是ARM不一定是STM32[像NXP(philips)、TI、Atmel、OKI、ST、三星、华为等,都以ARM为内核,做出了各自身怀绝技的32位MCU,像华为的海思芯片]
(4)STM32的特点:高性价比、内部外设丰富、高MIPS(MIPS只是衡量CPU性能的指标)、广泛的群众基础

3.1.2.2.STM32从何处而来
(1)STM32利用ARM Cortex-M3内核处理器,该处理器由ARM公司基于32位ARMv7架构设计,因此也可以叫作ARMv7‐M,关于ARM公司历史,可以看一下CM3的权威指南

(2)STM32由ST(意法半导体 ST官网   STM32官网 )设计、实现并生产

(3)ST除了生产STM32之外,还生产自主设计的8位单片机STM8s
(4)STM32有多种型号,覆盖Cortex-M的多种系列,M0、M0+、M3、M4、M7等。可以简单看下官网!

3.1.2.3.STM32官网资料浏览
(1)各系列差异图示浏览

(2)随便找一个进去看看详细选型信息
链接
(3)型号编码规则(以开发板配置的STM32F103C8为例说明)

3.1.4.STM32简单中文手册带读

手册下载链接

3.1.4.1、功能介绍

  • 存储器
  • 时钟
  • ADC
  • 调试模式
  • DMA:DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式。关于DMA
  • 外设:USART、定时器、ADC、SPI、I2C
  • I/O口
    中断源不是绑定好的,可以软件设置,进行映射!
  • 定时器
  • 通信接口

3.1.4.2、规格说明

1、器件一览

2、概述

  • 嵌套的向量式中断控制器(NVIC)
    51里面也有中断控制,只不过他是直接通过操控中断控制寄存器来实现的,STC51有8个终端源+4个优先级
  • 外部中断/ 事件控制器(EXTI)
  • 时钟
    系统时钟的选择是在启动时进行,复位时内部8MHz的RC振荡器被选为默认的CPU时钟,随后可以选择外部的、具失效监控的4~16MHz时钟;当外部时钟失效时,它将被隔离,同时会产生相应的中
    断。同样,在需要时可以采取对PLL时钟完全的中断管理(如当一个外接的振荡器失效时)。具有多个预分频器用于配置AHB的频率、高速APB(APB2)和低速APB(APB1)区域。AHB和高速APB的最高频率是72MHz,低速APB的最高频率为36MHz。
  • 自举模式(启动模式)
  • 供电方案
    可以参照原理图,看看VDD、VSSA、VBAT如何提供不同的供电方案!
  • 低功耗模式
    睡眠模式、停机模式、待机模式
  • DMA
    灵活的7路通用DMA可以管理存储器到存储器、设备到存储器和存储器到设备的数据传输;DMA控制器支持环形缓冲区的管理,避免了控制器传输到达缓冲区结尾时所产生的中断。
    DMA可以用于主要的外设:SPI、I2C、USART、通用和高级定时器TIMx和ADC。
  • RTC(实时时钟)和后备寄存器
    RTC和后备寄存器通过一个开关供电,在VDD有效时该开关选择VDD供电,否则由VBAT管脚供
    电。后备寄存器(10个16位的寄存器)可以用于在VDD消失时保存数据。
  • 独立的看门狗
  • 窗口看门狗
  • 系统时基定时器
  • 通用定时器(TIMx)
  • 高级控制定时器(TIM1)
  • 通信接口:USART、I2C、SPI、CAN、USB、GPIO
  • ADC( 模拟/数字转换器)

后面的内容在后面课程详细讲!


3.1.5.STM32的各种仿真器调试器是怎么回事

3.1.5.1、仿真器和调试器的区别和联系

  • 仿真器
     单片机仿真器是指以调试单片机软件为目的而专门设计制作的一套专用的硬件装置。和软件仿真一样,可以设置断点、单步执行、全速执行,但是没一类单片机都要有有个仿真器,成本还高!
  • 调试器
       也属于仿真器,但是,只要调试接口一样,调试器就可以仿真不同型号的单片机,咱们学STC51时,对一段代码的运行时间的测量,就是用的调试器功能!

3.1.5.2、STM32调试接口
(1)JTAG协议:标准的JTAG接口是4线:TMS、 TCLK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:

  • TMS:测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;
  • TCLK:测试时钟输入;
  • TDI:测试数据输入,数据通过TDI引脚输入JTAG接口;
  • TDO:测试数据输出,数据通过TDO引 脚从JTAG接口输出;

JTAG也有自己的JTAG调试器,但是如下图,JTAG需要并口,而现在大部分都是USB口,所以JTAG调试器退出舞台,而JTAG协议还被广泛使用!
这里写图片描述

(2)SWD:串行调试(Serial Wire Debug),应该可以算是一种和JTAG不同的调试模式,使用的调试协议也应该不一样,所以最直接的体现在调试接口上,与JTAG的20个引脚相比,SWD只需要4个(或者5个)引脚,结构简单,但是使用范围没有JTAG广泛,主流调试器上也是后来才加的SWD调试模式。最大的特点就是需要的GPIO引脚少!
下面是JTAG和SWD的接口图:


3.1.5.3、STM32常用调试器
(1)JLINK V9 V11
J-Link是德国SEGGER公司推出基于JTAG的仿真器。简单地说,是给一个JTAG协议转换盒,即一个小型USB到JTAG的转换盒,就是把JTAG的并行口改装成了USB口!
JLINK是一个通用的开发工具,可以用于KEIL、IAR、ADS 等平台。速度,效率,功能都很好,据说是众多仿真器里最强悍的。网上都是盗版的,正版的上千!
查看源图像
(2)STLINK
ST-LINK是专门针对意法半导体STM8和STM32系列芯片的仿真器。
这里写图片描述
(3)普中ARM仿真器

(4)现在还有一个STM32cubeprogrammer:介绍链接

3.1.5.4、关于调试器朱老师有话要说
(1)调试器和它的调试思想对学习和开发有一定帮助
(2)不要太在意调试器
(3)想要路越走越宽越走越高,要学会不用调试器


3.1.6.STM32的标准外设库、 HAL库、LL库

3.1.6.1、三种对STM32编程方法
(1)寄存器操作
(2)标准库(标准外设库)

  • STM32标准外设库是一个固件函数包,它由程序、数据结构和宏组成,包括了微控制器所有外设的性能特征。
  • 该函数库还包括每一个外设的驱动描述和应用实例,为开发者访问底层硬件提供了一个中间API,通过使用固件函数库,无需深入掌握底层硬件细节,开发者就可以轻松应用每一个外设。

(3)STM32Cube(HAL库/LL库)

  • HAL库就是用来取代之前的标准外设库的。相比标准外设库,STM32Cube HAL库表现出更高的抽象整合水平,HAL API集中关注各外设的公共函数功能,这样便于定义一套通用的用户友好的API函数接口,从而可以轻松实现从一个STM32产品移植到另一个不同的STM32系列产品。
  • 现在,ST主推HAL库,目前,HAL库已经支持STM32全线产品。
  • ST专门为其开发了配套的桌面软件STMCubeMX,开发者可以直接使用该软件进行可视化配置,大大节省开发时间。(明天给大家演示一下!

库
3.1.6.2、库从哪里来
ST官网链接


3.1.7.本课程使用的开发板介绍

3.1.7.1、选择开发板的原则
(1)够用就好,不要过分追求新和高端
(2)性价比(性能/价格)
(3)对比参照有一定必要性

  • 如果想和老师学习,最好使用和他不一样的开发板,这样最容易提高!

3.1.7.2、我手头目前的开发板

(1)STM32F103C8

(2)STM32F407VET6

(3)普中科技开发板
3.1.7.3、学会STM32的关键
(1)底子:会单片机最好,只要会C语言就可以!
(2)好的课程
(3)学练结合 + 一定耐性 = 必然学会

本节课结束!


 

猜你喜欢

转载自blog.csdn.net/qq_27148893/article/details/111321089