第4章 初识STM32

发布者:EtherealHeart最新更新时间:2024-10-08 来源: cnblogs关键字:STM32  意法半导体  MCU 手机看文章 扫描二维码
随时随地手机看文章

本章参考资料:1、《STM8和STM32产品选型手册》2、SetupSTM32CubeMX-4.16.0.exe

4.1  什么是STM32

STM32,从字面上来理解,ST是意法半导体,M是Microelectronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。在如今的32位控制器当中,STM32可以说是最璀璨的新星,它受宠若娇,大受工程师和市场的青睐,无芯能出其右。

4.1.1  STM32诞生的背景

51 是嵌入式学习中一款入门级的经典 MCU,因其结构简单,易于教学,且可以通过串口编程而不需要额外的仿真器,所以在教学时被大量采用,至今很多大学在嵌入式教学 中用的还是 51。51 诞生于 70 年代,属于传统的 8 位单片机,如今,久经岁月的洗礼,既 有其辉煌又有其不足。现在的市场产品竞争越来越激烈,对成本极其敏感,相应地对 MCU 的 性能要求也更苛刻:更多功能,更低功耗,易用界面和多任务。面对这些要求,51 现有的 资源就显得得抓襟见肘。所以无论是高校教学还是市场需求,都急需一款新的 MCU 来 为这个领域注入新的活力。

基于这样的市场需求, ARM 公司推出了其全新的基于 ARMv7 架构的 32 位 Cortex-M3 微控制器内核。紧随其后,ST(意法半导体)公司就推出了基于 Cortex-M3 内核的 MCU—STM32。STM32 凭借其产品线的多样化、极高的性价比、简单易用的库开发方式,迅速在众多 Cortex-M3 MCU 中脱颖而出,成为最闪亮的一颗新星。STM32 一上市就迅速占领了中低端 MCU 市场,受到了市场和工程师的无比青睐,颇有星火燎原之势。

作为一名合格的嵌入式工程师,面对新出现的技术,我们不是充耳不闻,而是要尽快 吻合市场的需要,跟上技术的潮流。如今 STM32 的出现就是一种趋势,一种潮流,我们要 做的就是搭上这趟快车,让自己的技术更有竞争力。

4.2  STM32能做什么

STM32属于一个微控制器,自带了各种常用通信接口,比如USART、I2C、SPI等,可接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品都有STM32的身影,比如智能手环,微型四轴飞行器,平衡车、移动POST机,智能电饭锅,3D打印机等等。下面我们以最近最为火爆的两个产品来讲解下,一个是手环,一个是飞行器。

4.2.1  智能手环

 

图 4-1 三星 GearFit 智能手环

红圈:STM32F439ZIY6S处理器,2048KB FLASH ,256KB RAM ,WLCSP143封装。

橙圈:Macronix MX69V28F64 16 MB闪存,基于MCP封装的存储器,是一种包含了NOR和SRAM的闪存,这在手环手机这种移动设备中经常使用,优点是体积小,可以减小PCB的尺寸。这个闪存用的439的FSMC接口驱动。

黄圈:InvenSense MPU-6500陀螺仪/加速度计,用439的I2C接口驱动。

绿圈:博通BCM4334WKUBG芯片,支持802.11n,蓝牙4.0+HS以及FM接收芯片,用439的SDIO或者SPI接口驱动。

显示:1.84'可弯曲屏幕(Super AMOLED),432 x 128像素。触摸部分用439的I2C接口驱动,OLED显示部分用LTDC接口驱动。

表格 4-1 三星Gear Fit 和秉火STM32F767挑战者资源对比

资源

三星Gear Fit

秉火STM32F767挑战者

CPU

STM32F439ZIY6S,WLCSP143封装

STM32F767IGT6,LQPF176 封装

存储

NOR+SRAM  16MB,FSMC接口

SDRAM  8MB,FMC接口

显示

1.84寸的 AMOLED,RGB接口,LTDC驱动

5寸电容屏,RGB接口,LTDC驱动

陀螺仪

MPU6050,I2C接口

MPU6050,I2C接口

无线通信

蓝牙:博通BCM4334,SDIO或者SPI接口

WIFI: 博通BCM43362,SDIO接口

除了这几个重要资源的对比,我们的767开发板上还集成了以太网,音频,CAN,485,232,USB转串口,蜂鸣器,LED,电容按键等外设资源,可以充分的学习767这个芯片。在板子上面,还可以跑系统ucosiii,学习图形界面emwin。如果功夫所至,学完之后,自己都可以做一个类似Gear Fit这样的手环。可很多人又会说,Gear Fit 涉及硬件和软件,整个系统这么复杂,并不是一个人可以完成的。说的没错,我们可以做不了,但是我们的能力可以无限接近,多学点,技多不压身嘛。

 

图 4-2 ucosiii+emwin 做的系统界面(767开发板的开机界面)

4.2.2  微型四轴飞行器

现在无人机非常火热,高端的无人机用STM32做不来,但是小型的四轴飞行器用STM32还是绰绰有余的。如图 4-3所示飞行器的基本都可以用STM32搞定。

 

图 4-3 微型四轴飞行器

上面的是属于产品,如果想自己DIY,可以在入门STM32之后,买一本飞行器DIY的书,边做边学。入门级的书籍推荐《四轴飞行器DIY—基于STM32微控制器》,见图 4-4。

 

图 4-4 四轴飞行器DIY —基于STM32微控制器

1.2.3  淘宝众筹

学会了STM32,想自己做产品,如何实现自己的梦想,淘宝众筹吧。做出产品原型,用别人的钱为自己的梦想买单。

淘宝众筹科技类网址:这里面有很多小玩意都可以用STM32实现,只要你的创意到了,就会有人买单,前提是我们要先学会STM32。


 

图 4-5 淘宝众筹科技类

4.3  STM32怎么选型

4.3.1  STM32分类

STM32有很多系列,可以满足市场的各种需求,从内核上分有Cortex-M0、M3、M4和M7这几种,每个内核又大概分为主流、高性能和低功耗。具体的见表格 42。

单纯从学习的角度出发,可以选择F1、F4和F7,F1代表了基础型,基于Cortex-M3内核,主频为72MHZ,F4代表了高性能,基于Cortex-M4内核,主频180M,F7代表了高性能,基于Cortex-M7内核,主频216M。

之于F1,F4(429系列以上)和F7(746系列以上)除了内核不同和主频的提升外,升级的明显特色就是带了LCD控制器和摄像头接口,支持SDRAM,这个区别在项目选型上会被优先考虑。

表格 4-2 STM8和STM32分类

CPU位数

内核

系列

描述

32

Cortex-M0

STM32-F0

入门级

STM32-L0

低功耗

Cortex-M3

STM32-F1


STM32-F2

高性能

STM32-L1

低功耗

Cortex-M4

STM32-F3

混和信号

STM32-F4


STM32-L4

低功耗

Cortex-M7

STM32-F7

高性能,主频216M

8

超级版6502

STM8S


STM8AF

标准系列的汽车应用

STM8AL

低功耗的汽车应用

STM8L

低功耗

4.3.2  STM32 命名方法

这里我们以秉火F767挑战者用的型号STM32F767IGT6来讲解下STM32的命名方法。

表格 4-3 STM32F767IGT6命名解释

STM32

767

G

6

STM32 表示32bit的MCU

产品类型

F表示基础型





具体特性

I表示176pin,其他常用的为C表示48,R表示64,V表示100,Z表示144,B表示208,N表示216





FLASH大小

T表示QFP封装,这个是最常用的封装





温度












GPIO

专用器件接到专用的总线,比如I2C,SPI,SDIO,FSMC,DCMI这些总线的器件需要接到专用的IO











普通的元器件接到GPIO,比如蜂鸣器,LED,按键等元器件用普通的GPIO即











如果还有剩下的IO,可根据项目需要引出或者不引出











2. 如何寻找IO的功能说明

要想根据功能来分配IO,那就得先知道每个IO的功能说明,这个我们可以从官方的数据手册里面找到。在学习的时候,有两个官方资料我们会经常用到,一个是参考手册(英文叫Reference manual),另外一个是数据手册(英文叫Data Sheet)。两者的具体区别见表格 45。

表格 4-5 参考手册和数据手册的内容区别

手册

说明

内存映射

讲解该芯片的内存映射,列举每个总线的地址和包含有哪些外设。

封装特性

讲解芯片的封装,包含每个引脚的长度宽度等,我们画PCB封装的时候需要参考这部分的参数。

一句话概括:数据手册主要用于芯片选型和设计原理图时参考,参考手册主要用于在编程的时候查阅。官方的这两个文档可以从官方网址里面下载:http://www.stmcu.org/document/list/index/category-877,也可以从我们配置的光盘资料里面找到。

在数据手册中,有关引脚定义的部分在Pinouts and pin description这个小节中,具体定义见表格 4-6。

表格 4-6 数据手册中对引脚定义
 

表格 4-7 对引脚定义的解读

名称

缩写

说明

① 引脚序号

阿拉伯数字表示LQFP封装,英文字母开头的表示BGA封装。引脚序号这里列出了有6种封装型号,具体使用哪一种要根据实际情况来选择。

② 引脚名称

指复位状态下的引脚名称

③ 引脚类型

S

电源引脚

I

输入引脚

I/O

输入/输出引脚

④ I/O结构

FT

兼容5V

TTa

只支持3V3,且直接到ADC

B

BOOT引脚

RST

复位引脚,内部带弱上拉

⑤ 注意事项

对某些IO要注意的事项的特别说明

⑥ 复用功能

IO的复用功能,过GPIOx_AFR寄存器来配置选择。一个IO口可以复用为多个功能,即一脚多用,这个在设计原理图和编程的时候要灵活选择。

⑦ 额外功能

IO的额外功能,通过直连的外设寄存器配置来选择。个人觉得在使用上跟复用功能差不多。

3. 开始分配原理图IO

比如我们的F767挑战者使用的MCU型号是STM32F767IGT6,封装为LQFP176,我们在数据手册中找到这个封装的引脚定义,然后根据引脚序号,一个一个复制出来,整理成excel表。具体整理方法按照表格 44 画原理图时的引脚分类即可。分配好之后就开始画原理图。

4.3.4  PCB哪里打样

设计好原理图,画好PCB之后,需要把板子做出来,进行软硬件联调。首先得PCB打样,这里我推荐一家我经常打样的厂家,深圳嘉立创(JLC),行业标杆,良心价格,网址:。一块10CM*10CM以内的板子,三天做好,50块就可以搞定,还包邮,简直便宜到掉渣。如果你足够懒,不想自己焊接电阻电容二三极管什么的,嘉立创还可以帮你把PCB样板上的阻容贴好给你,打样贴片一条龙。

样品做好了,软硬件什么都OK,要小批量怎么办?还是找JLC。


关键字:STM32  意法半导体  MCU 引用地址:第4章 初识STM32

上一篇:第16章 STM32中断应用概览
下一篇:stm32 _ freertos 封装后 的 API说明

推荐阅读最新更新时间:2024-11-08 18:20

Python 和OpenMV如何玩转 STM32 MCU
如今网络边缘侧的机器学习现状如何?哪些工具可以帮助工程师收集数据并执行推断运算?在哪里可以找到ST MEMS,它们对现实生活中的产品有哪些影响?本文是我们即将举行的STM32全国研讨会系列的第二篇专题文章。在第14届STM32全国研讨会上,我们将通过应用演示、产品展示以及工程师与观众互动回答问题的方式,来与蝶粉社区近距离交流。在STM32全国研讨会专题系列报道第一部分我们着重介绍了云连接方面的用例,如一款新的智能门铃功能演示,还介绍了工业和数据安全相关应用。 今天,我们将重点探讨人工智能、计算以及感知技术。 人工智能与计算 Qeexo 和STM32Cube.AI 当今边缘机器学习解决方案的种类越来越多,本届STM32全国
[嵌入式]
51单片机PWM占空比调整
//51单片机PWM占空比调整演示程序 //(通过测试,注意:AT89S51单片机,有的单片机P3_7需要改为P3^7) /***************************************************************************** * 程序名称:PWM占空比调整演示程序 * *程序思路说明: * * 只需要4个按键。 * *关于频率和占空比的确定,对于12M晶振,输出频率为1KHZ,这样定时中断次数设定为 * *10,即0.0
[单片机]
AT89S51单片机对6位LED数码管实现显示时计方式的设计
这是我们设计的单片机电子钟/计时器学习板,它采用6位LED数码管显示时、分、秒,以24小时计时方式。可以通过按键实现时分调整、秒表/时钟功能转换、省电(关闭显示)等功能。我们能提供的完整的汇编语言源程序清单及电路原理设计图有助于学习者进行分析和进行实验验证。 硬件参数板上资源:MCU STC89C52、6位Led显示、3位按键。电源部分为5V直流电压,需要稳压、滤波电路,不能接反! 51单片机做的电子钟在很多地方都有介绍, 对于单片机学习者来说这个程序基本上是一道门槛,掌握了电子钟程序, 基本上可以说51单片机就掌握了80%。常见的电子钟程序由显示部分、计算部分、时钟调整部分构成,本产品硬件上完全支持倒计时器,客户只要自己修改
[单片机]
AT89S51<font color='red'>单片机</font>对6位LED数码管实现显示时计方式的设计
单片机---HLK-W801图形框架LVGL移植
背景介绍 最近接触到了一个开源的显示框架lvgl,在跑起了demo的时刻,发现这确实是个酷酷的东西。 LVGL的作者是来自匈牙利的Gabor Kiss-Vamosikisvegabor,LVGL用C语言编写,以实现最大的兼容性(与C ++兼容),模拟器可在没有嵌入式硬件的PC上启动嵌入式GUI设计,同时LVGL作为一个图形库,它自带着接近三十多种小工具可以供开发者使用。这些强大的构建块按钮搭配上带有非常丝滑的动画以及可以做到平滑滚动的高级图形,同时兼具着不高的配置要求以及开源属性,显著的优势使得LVGL蔚然成风,成为广大开发者在选择GUI时的第一选择。 demo的样子 这流畅的动画和体面的输入,一个字–绝。 代码
[单片机]
<font color='red'>单片机</font>---HLK-W801图形框架LVGL移植
灵动微电子杀入32位MCU领域,MCU洗牌即将拉开序幕?
     520不但是爱情表达日,也让半导体厂商用来表达对用户的满满爱意,5月20日,在2016深圳(国际)集成电路技术创新与应用展上,上海灵动微电子股份有限公司宣布正式推出“MM32x031”及 “MM32x103”系列32位MCU产品,在这个流行跨界和融合的时代,这意味着这家中国唯一一家在证券市场公开挂牌的MCU设计代工企业正式杀入MCU品牌领域,也意味着MCU市场面临新的玩法和变革了。   上海灵动微电子股份有限公司(股票代码:833448,股票简称:灵动微电)是国内专注于MCU产品与MCU应用方案的领先供应商,是中国工业及信息化部及上海市信息化办公室认定的集成电路设计企业,同时也是上海市认定的高新技术企业。自20
[手机便携]
模拟串口的实现单片机IO口
用EBOX向我们的电力线调试模块发数据,但是要有一个控制接口,但是EBOX没有提供,所有只好用MCU来做伺服器。 一般的单片机都只有一个串口,所以必须模拟一个出来。 /* sbit TXD1 = P1^4; //define p14 as the analog transmit port sbit RXD1 = P1^2; //define p12 as the analog recieve port */ #include REG52.H #define uint unsigned int #define uchar unsigned char #include intrin
[单片机]
STM32--堆栈空间
函数的局部变量,都是存放在 栈 里面,栈的英文是:STACK. STACK的大小,可以在STM32的启动文件里面设置,以战舰开发板为例,在startup_stm32f10x_hd.s里面: Stack_Size EQU 0x00000400 AREA STACK, NOINIT, READWRITE, ALIGN=3 Stack_Mem SPACE Stack_Size __initial_sp Heap_Size EQU 0x00000200 Stack_Size EQU 0x00000400 表示栈大小
[单片机]
采用STM32单片机和EM310模块的无线终端设计及在SCADA系统中的应用
引言 在监测监控及数据采集系统(SCADA)系统中,采集数据的实时性和准确性对系统有很大的影响,合适的通信网络可以有效提高SCADA系统的效益,本文设计的GPRS无线终端在SCADA系统中的应用解决了上述问题,除满足数据实时性和准确性外,还具有建设成本低.结构简单.传输容量大.可远程控制等优势. 1 、终端简介 1.1、终端结构 无线终端由EM310GSM模块和STM32F103单片机构成,以STM32F103单片机为核心,STM32F103单片机有丰富的通信接口,用于连接EM310和现场仪表;还有丰富的I/O资源,可以扩展较大容量的RAM,一方面存储指令集,用于解读指令并作出相应的动作;另一方面用于暂时存储监测点采集到的数据
[单片机]
采用<font color='red'>STM32</font><font color='red'>单片机</font>和EM310模块的无线终端设计及在SCADA系统中的应用
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved