第4章 初识STM32—零死角玩转STM32-F429系列

发布者:oplndctkl出最新更新时间:2019-09-19 来源: eefocus关键字:初识  STM32  STM32-F429系列 手机看文章 扫描二维码
随时随地手机看文章

本章参考资料:1、《STM8和STM32产品选型手册》2、SetupSTM32CubeMX-4.11.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 智能手环

图 41 三星 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接口驱动。


表格 41 三星Gear Fit 和秉火STM32F429至尊版资源对比

image.png

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

图 42 ucosiii+emwin 做的系统界面(429开发板的开机界面)


4.2.2 微型四轴飞行器

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

图 43 微型四轴飞行器


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

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


4.2.3 淘宝众筹

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


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


https://hi.taobao.com/market/hi/list.php?spm=a215p.1596646.1.8.LbVyJk#type=121288001


图 45 淘宝众筹科技类


4.3 STM32怎么选型

4.3.1 STM32分类

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


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


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


表格 42 STM8和STM32分类

image.png

4.3.2 STM32 命名方法

这里我们以秉火F429至尊版用的型号STM32F429IGT6来讲解下STM32的命名方法。


表格 43 STM32F429IGT6命名解释

image.png

有关更详细的命名方法见图 46。

图 46 STM8和STM32命名方法,摘自《STM8和STM32选型手册》


4.3.3 选择合适的MCU

了解了STM32的分类和命名方法之后,就可以根据项目的具体需求先大概选择哪类内核的MCU,普通应用,不需要接大屏幕的一般选择Cortex-M3内核的F1系列,如果要追求高性能,需要大量的数据运算,且需要外接RGB大屏幕的则选择Cortex-M4内核的F429系列。


明确了大方向之后,接下来就是细分选型,先确定引脚,引脚多的功能就多,价格也贵,具体得根据实际项目中需要使用到什么功能,够用就好。确定好了引脚数目之后再选择FLASH大小,相同引脚数的MCU会有不同的FLASH大小可供选择,这个也是根据实际需要选择,程序大的就选择大点的FLASH,要是产品一量产,这些省下来的都是钱啊。有些月出货量以KK(百万数量级)为单位的产品,不仅是MCU,连电阻电容能少用就少用,更甚者连PCB的过孔的多少都有讲究。项目中的元器件的选型的水深着啊,很多学问。


1.    如何分配原理图IO

在画原理图之前,一般的做法是先把引脚分类好,然后才开始画原理图,引脚分类具体见表格 44。


表格 44 画原理图时的引脚分类

image.png

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

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


表格 45 参考手册和数据手册的内容区别

image.png

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


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


表格 46 数据手册中对引脚定义

表格 47 对引脚定义的解读

image.png

3.    开始分配原理图IO

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


4.3.4 PCB哪里打样

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


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


关键字:初识  STM32  STM32-F429系列 引用地址:第4章 初识STM32—零死角玩转STM32-F429系列

上一篇:第3章 如何用DAP仿真器下载程序—零死角玩转STM32-F429系列
下一篇:第6章 新建工程-寄存器版—零死角玩转STM32-F429系列

推荐阅读最新更新时间:2024-11-06 05:02

有关stm32的串口发送与接收的逻辑问题
在弄毕业设计时遇到一个问题,而且这个问题困扰了我很久,究其原因是我没有一个清晰的逻辑。 首先我想实现的功能是循环向串口2发送一个命令数组,并且每发送完这个命令后,串口2接收一串数据,这个数据是由串口2连接的模块发送的。用串口2接收到后用串口1通过串口小助手打印出来。 我的问题就来了,我居然认为串口2发送出去的命令数组居然会中断串口2的接收中断!更可怕的是,我居然在串口2的接收中断中把接受到的数据用串口1打印出来。然后我就发现怎么中断不了也打印不出!我一直以为是我的发送数组函数写得有问题,或者是中断函数写错了,结果调试了很久,代码改了又改,又重新复习一遍串口知识,还是觉得自己写的串口函数都没问题。太苦恼了。 但终于我在这
[单片机]
STM32常见问题:低温下部分产品RTC不工作的问题探析
前言 客户反馈在批量生产阶段,发现部分产品的MCU的RTC在低温(0℃)下工作不正常,但是在常温下又是正常的,且其他正常的MCU的RTC在常温与低温下都是正常的。 问题跟进 通过与客户邮件沟通,了解到客户使用的MCU型号是STM32F030C6T6TR。在产品的主从结构中主要用作电源管理和时钟管理。通过客户的描述,似乎相同型号不同片子都存在较大的差异。 由于时间紧急,在了解到初步信息后拜访客户,针对客户认为有问题的MCU芯片做针对性试验。通过STM32CubMx生成测试工程,分别使用LSI(40K),LSE(32.768K),RTC工作时每秒通过LED1(PB5)取反一次(通过LED1灯是否闪烁来指示RTC是否工作正常),
[单片机]
<font color='red'>STM32</font>常见问题:低温下部分产品RTC不工作的问题探析
STM32的SPI1、SPI2、SPI3初始化及RF1101的应用(标准库与HAL库)
——基于STM32F103RCT6 ---- 标准库: 说明:相关文件共有两个:bsp_spi_cc1101.h;bsp_spi_cc1101.c;以SPI2为例。 1、“bsp_spi_cc1101.h”中的参数定义: #ifndef _BSP_SPI_1101_H_ #define _BSP_SPI_1101_H_ #include stdio.h #include stm32f10x.h #include misc.h #include os_cfg_app.h #include os.h #include core_cm3.h #include bsp.h #include stm32f10x_s
[单片机]
基于MDK的stm32实践过程中,debug的总结
做硬件仿真的时候,程序一直停在LDR R0, =SystemInit中的可能原因: 出现最多的情况就是设置的断点过多,STLINK只能设5个断点,可以把断点全部删除试试看,把断点设置在主函数。 在程序中使用了C库(printf),那么进入Option ---target 将 use microLib 勾选上。 硬件原因,主芯片,或者晶振有问题,更换一下就好了
[单片机]
STM32 IAP(在线更新程序)的使用关键点
所谓IAP其实就相当于一个小小的bootloader 用来更新程序的 很多产品基本都是程序做好后就直接在产线烧录一次就OK了,但是,但是BUG有时候是无可避免的,经常有产品装好后又要重新拆外壳 取下板子重新上烧录架烧的惨痛经历,所以,这种情况下IAP就很有必要了,只要一个对外的接口就能在线更新了,常用的是USB口,当然要是一定要用串口的话也是可以的 硬件上麻烦一些而已,下面就是例程 typedef void (*pFunction)(void); pFunction Jump_To_Application; unsigned long JumpAddress; if(!Check_Whether_Enter
[单片机]
<font color='red'>STM32</font> IAP(在线更新程序)的使用关键点
技术牛人自制STM32开发板学习32位单片机(图文)
  实验室快关门了,于是赶着这时间把一直想搞的STM32开发板给做了,顺便把那个2.4寸TFT的转接板也做了,加了个触摸屏。这里上传我的资料。希望对网友有帮助。   我一贯是以实用至上,这次也不例外,开发板分为核心板和主板,主板提供核心板的必要外围设备,同时在没有核心板的时候,主板就成了一个通用的了,为其他核心板(像我做的CPLD/ADUC7027之类的)提供外设了。主板载有功能:   STM32开发板LCD显示效果   1,5V,3.3V电源输出(由USB供电或者外部电源都可)   2,USB串口一个(CH341),通用串口2个(MAX232)   3.USB接口一个,支持U盘或者与电脑连接   4,按键三个
[单片机]
技术牛人自制<font color='red'>STM32</font>开发板学习32位单片机(图文)
STM32 移植 STemwin(Touch)
上篇讲到了STemwin的基本移植步骤,这里再讲下Touch的支持。 驱动好自己的触摸屏,准备好测量X,Y 返回为ADC值的函数。这个一般也不难 准备好GUI_TOUCH_X.C文件,这里比较坑的就是这个文件没有包含在STemwin的包里面(至少5.32里面没有),需要自己写一个,其实内容很简单,如下 #include GUI.h #include XPT2046.h void GUI_TOUCH_X_ActivateX(void) { } void GUI_TOUCH_X_ActivateY(void) { } int GUI_TOUCH_X_MeasureX(void) { return XPT2046_R
[单片机]
<font color='red'>STM32</font> 移植 STemwin(Touch)
stm32之RTC
1、stm32f10x_it.c文件 /******************************************************************************* * Function Name : RTC_IRQHandler RTC中断 * Description : * Input : None * Output : None * Return : None *******************************************************************************/ extern volatile bool S
[单片机]
<font color='red'>stm32</font>之RTC
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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