STM32F4是由ST(意法半导体)开发的一种高性能微控制器。其采用了90 纳米的NVM 工艺和ART(自适应实时存储器加速器,Adaptive Real-Time MemoryAccelerator™)。
简介:
ST(意法半导体)推出了以基于ARM® Cortex™-M4为内核的STM32F4系列高性能微控制器,其采用了90 纳米的NVM 工艺和ART(自适应实时存储器加速器,Adaptive Real-Time MemoryAccelerator™)。
ART技术使得程序零等待执行,提升了程序执行的效率,将Cortext-M4的性能发挥到了极致,
使得STM32 F4系列可达到210DMIPS@168MHz。
自适应实时加速器能够完全释放Cortex-M4 内核的性能;当CPU 工作于所有允许的频率(≤168MHz)时,在闪存中运行的程序,可以达到相当于零等待周期的性能。
STM32F4系列微控制器集成了单周期DSP指令和FPU(floating point unit,浮点单元),提升
了计算能力,可以进行一些复杂的计算和控制。
STM32 F4系列引脚和软件兼容于当前的STM32 F2系列产品。
优点
※兼容于STM32F2系列产品,便于ST的用户扩展或升级产品,而保持硬件的兼容能力。
※集成了新的DSP和FPU指令,168MHz的高速性能使得数字信号控制器应用和快速的产品开发达到了新的水平。提升控制算法的执行速度和代码效率。
※先进技术和工艺
- 存储器加速器:自适应实时加速器(ART Accelerator™ )
- 多重AHB总线矩阵和多通道DMA:支持程序执行和数据传输并行处理,数据传输速率非常快
- 90nm工艺
※高性能
- 210DMIPS@168MHz
- 由于采用了ST的ART加速器,程序从FLASH运行相当于0等待更多的存储器
- 多达1MB FLASH (将来ST计划推出2MB FLASH的STM32F4)
- 192Kb SRAM:128KB 在总线矩阵上,64KB在专为CPU使用的数据总线上高级外设与STM32F2兼容
- USB OTG高速 480Mbit/s
- IEEE1588, 以太网 MAC 10/100
- PWM高速定时器:168MHz最大频率
- 加密/哈希硬件处理器:32位随机数发生器(RNG)
- 带有日历功能的32位RTC:<1 μA的实时时钟,1秒精度
※更多的提升
- 低电压:1.8V到3.6V VDD,在某些封装上,可降低至1.7V
- 全双工I2S
- 12位 ADC:0.41us转换/2.4Msps(7.2Msps在交替模式)
- 高速USART,可达10.5Mbits/s
- 高速SPI,可达37.5Mbits/s
- Camera接口,可达54M字节/s
STM32的学习与ARM9的学习有一个很大的区别。
ARM9的学习一般是需要购买书籍的。比如三星的S3C2440,官方的文档都是英文的,大部分工程师只能去看国内出版的书籍。
英文好的同学,请不要以为你很牛,可以只看英文文档。毕竟你是中国人,你最熟悉的,理解最好的还是中文。
看英文的速度还是比看中文慢一些,我们要的是最短的时间,而不是追求短时间内记住所有细节。当然,如果是一篇论文,建议看英文原版还是有好处的。
STM32处理器进入国内市场时候,ST官方(或者第三方)的推广工作做的非常好。翻译了大量的英文文档,迎合了国内的很多工程师的思维。
所以现在大部分STM32F103xxx的用户datasheet都有中文版。因此可以不用去购买书籍,看电子档即可。
当然,有雄厚经济条件的朋友可以购买本书籍哈~ 学习的时候,关注两个比较重要的文档:《STM32F103xxx参考手册》,《STM32固件库使用手册》。ST官方的所有中英文文档,在ST的中国大陆区网站可以下载到:.cn/stonline/mcu/MCU_Pages.htm 该网址,是针对有充足的时间、精力的同学,建议去下载需要查阅的文档,以获取更多信息。
阅读《STM32F103xxx参考手册》,一定要注意,不需要全部阅读—— 没有时间的。建议选读,但是前几章必读。
存储器和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和时间等等前几章一定要花时间阅读。后面章节,讲述的是具体的功能模块设计。
如果我们用到哪个模块,就可以去阅读哪个模块。比如在使用AD的时候,就需要去阅读第10章 ADC。
其他不举例。相信每个初学者都有自己的研究方向和判断。
阅读《STM32固件库使用手册》,主要是为了简化编程。STM32给我们提供了一个非常好的固件函数库,我们只要去调用即可。
当然,我们也可以不去碰这些固件库 —— 传说使用它会使得代码效率变低,是有道理的。网络上也出现了很多网友自己写的代码,没有使用带固件库函数。
如何取舍,在于您的选择。这里我主要强调的是,阅读《STM32固件库使用手册》的时候,前面几章也是必须阅读的。
比如第一章文档和库规范 中的命名规则,编码规则,这些都是需要注意的。第二章是最关键的,希望大家熟读。
第二章描述了固件库的架构,我们如何去使用固件库的步骤等。有了第二章的基础,我们就可以借助固件库写出自己的代码了。
第四章开始之后,就可以根据大家的需要来阅读。实际上,后续的章节,都是描述某个模块有什么什么函数,每个函数如何使用等。
关于后面的章节,建议对GPIO库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到。以上提到的这两个文档,已经足够您看的了,呵呵。
希望您能从中获取大量的STM32基础知识。3.2 30天上手STM32计划 (1)这里所谓的“上手”,指的是能理解并掌握一些常用的STM32外设,真正想掌握一款处理器,30天根本说明不了什么问题。
只能说,你已经入门了。但是,这对我们初学者来说已经足够了。
(2)这里所谓的“30天”,根据每个人的时间安排不同而不同。如果您每天有充足的时间学习,那么可以规定自己尽快地能独立地进行简单的STM32开发。
如果您每天只有业余时间来学习STM32,建议根据您的具体情况安排时间。毕竟计划时间如果安排太紧,反而收不到良好的效果,只能进入恶性循环,这是我们要避免的。
但是建议,不管您有无充足的时间,都必须给自己做一个计划!!我这里列出一个思路,仅供参考。步骤一,安装完STM32学习的软件,比如J-Link、Keil for ARM(MDK)、ISP(如果需要从串口下载的话)。
这些软件安装的详细步骤,可以参考我们推出的相应教程进行。步骤二,挑选部分例程的HEX,比如LED灯的例程HEX文件,下载到芯达STM32开发板中,观察两个LED灯的闪烁情况。
这部分的操作,可以参考我们推出的相应的教程进行。实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。
属于找感觉的阶段。其实我们还没开始STM32的学习呢!步骤三,准备几个常用的文档,比如《STM32的用户手册》,《STM32固件库使用手册》等文档。
用于平时查阅。这些文档,在光盘中的芯片手册目录中均可找到。
步骤四,开始查看例程的编写,看看例程是如何写的,自己可否修改下例程,达到自己想要的效果呢?芯达STM32开发板的光盘中为大家提供了丰富的例程代码,可以参考。您一定可以修改出更精彩的例程!步骤五,Ucos-II的移植,是否需要试一下?恭喜你,至此,你已经可以自如进行独立的开发了。
最后一步,给自己一个目标(项目),把它实现出来。
我的一些体会:
首先,关于STM32入门,这个可能需要的是指导教程和技术论文。说实话STM32并不难,因为你可以把它当做单片机来用,至少不会让你觉得入门很难的,具体的,你可以买个开发板,现在开发板市场上多的是,买个口碑好的,然后根据例程,再找个论坛或专题站就完全可以解决。
其次,具体一点话,要学习STM32,第一步可能要理解系统时钟,因为不管你要用到任何片内外设或者是IO口什么的,首先第一步就是要初始化时钟.至于内部寄存器,说实话,确实很多,不过你用到某一块,在看那一块的寄存器,这样更有针对性.
总的思路:时钟, == > GPIO, ==>; 定时器, == 》 usart模块,这样在熟悉这些基础上,慢慢添加或开发其他模块的操作 , 至于资料, 芯片手册,和STM32官方提供的固件库使用手册就OK了.
固件库呢,就是给你提供了函数,然后你就不用去研究它的寄存器了,通过那些函数就可以直接对STM32进行操作了,但是工作效率嘛,肯定是偏低了,不过刚学的时候可以参考一下,通过固件库函数来对STM32进行理解.
你这种情况我当初自学单片机的时候也遇到过,不知道从何下手,似乎哪里都是重点却哪里都是钉子。
我的解决办法就是把这些文档、手册先放一边,跟着教程一步一步去动手写动手做,教程里怎么做自己就怎么做。从最简单的配置启动文件和点灯开始,千万不要眼高手低,即使再简单的事例即使看懂了真自己去做的时候那种感觉和带来的认识也是完全不一样的。
在学习初期,除了启动配置库里的代码,自己程序里的主代码最好自己写一遍,哪怕是照着打也最好不要直接复制粘贴。实践过程中遇到不懂语句或者电路去再去查阅手册和资料,尽量自己解决,查的过程中注意不要看一直看起来没完舍本求末也不要贪大求全,看到解决了问题为止就再把手册放一边。
平时有空可以看看那几个常用手册的目录,对大体内容有个了解,方便遇到问题时查找。建议学的过程中做笔记,把自己的理解和经验记录下来,记在数据手册的margin上也行,记在专门的本子上也行,这个看自己怎么习惯怎么来,两种方法各有优点一般互相结合,这部分学习中的积累在未来将是你的巨大财富。
关于视频,网上传的比较多的讲的都挺好譬如野火的、青岛李想的等等,没有谁的一定最好一说,适合自己的就是最好的。STM32教程有两种,一种是基于对寄存器操作,另一种是基于函数库的直接使用。
如果你有单片机基础,并且想以此为职业,推荐从寄存器操作学起,然后在学函数库,有基础学这部分很快,跟51、avr没多大差别,就是寄存器多、位数多、功能多而已。如果你刚入单片机,推荐从函数库的使用学起,等到学的差不多再慢慢了解寄存器的相关知识和操作。
最后一句话概括就是:千里之行始于足下。
STM32 F4系列包括五条互相兼容的数字信号控制器(DSC)产品线,是MCU实时控制功能与DSP信号处理功能的完美结合体。
· STM32F401–84 MHz CPU/105 DMIPS,尺寸最小、成本最-低的解决方案,具有卓越的功耗效率 · STM32F405/415–168 MHz CPU/210 DMIPS,高达1MB、具有先进连接功能和加密功能的Flash存储器 · STM32F407/417–168 MHz CPU/210 DMIPS,高达1MB的闪存(Flash),增加了以太网MAC和照相机接口 · STM32F427/437–180 MHz CPU/225 DMIPS,高达2MB的双区闪存,具有SDRAM接口、Chrom-ART加速器™、串行音频接口,性能更高,静态功耗更低 · STM32F429/439–180 MHz CPU/225 DMIPS,高达2MB的双区闪存,增加了LCD-TFT控制器 。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.660秒