STM32是基于ARM Cortex-M3内核的32位处理器,具有杰出的功耗控制以及众多的外设,最重要的是其性价比。而且STM32官方在国内的宣传也是做得非常不错,而且针对8位机市场推出了STM8。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
本人在08年初开始接触STM32,之前也用过51,用过AVR ,对这几款芯片还是比较了解,下面就来看看我们为什么要选择STM32。
AVR是很成功的一款芯片,功耗低,性能强。较之前的51,性能提升了好几个档次。如果一个初学者,学完了51,再学AVR,肯定就会对AVR爱不释手。我也是这么过来的,AVR对当时的我来说可谓是要啥有啥。所以从大二开始,一直用到毕业。PIC据说也不错,但是很遗憾,我们学校,没看到几个搞PIC的,大概是因为这个东西价格太高了,对我们学生来说,基本上不考虑。当然,有钱人例外。
其次,AVR的下载也是很方便的。和51的可以通用。这其中双龙电子对avr的支持,至少在国内来说,爱特梅尔是要感谢他们的。至于STM8,我没有详细了解,我估计他存在的目的,就是要把8位市场给占领了。他最大的对手,估计就是AVR和51了。目前AVR的局势,岌岌可危,像目前这个情况,持续下去,很快就可以退出历史舞台了。
STM8目前最低端的是STM8S<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />103F2 最少引脚数是20脚的,淘宝最低售价是3.5元,AVR同样配置(仅仅指SRAM和FLASH)的芯片,价格在3块左右。基本不分上下。其他功能方面也很相似。STM8最高端的,STM8S208MB,淘宝价格在15元左右,而同样配置的avr芯片只有MEGA128了,还少了2k的ram和CAN控制器,不过多了总线控制器。但是MEGA128的价格,在30块钱左右,这就毫无竞争力了。这样的价格,STM32F103都能买到很好的芯片了。15块钱左右,基本只够买个MEGE32,而mega32和STM8S208MB相比,显然差距很明显。以目前的局势(AVR价格居高不下),我建议,没学AVR的就可以跳过了,学过的,就赶紧选择新的MCU。不过STM8的下载,好像不如AVR那么方便,这方面,我没有了解过,这里就不评论了。
高端市场,ST最近几年,对STM32的推广,可谓是不遗余力。效果也是很显著的。我是阴错阳差,在08年开始学STM32,而且STM32的价格,现在也很便宜,当时,STM32F103RBT6也就30块钱,外设功能是很强悍了:128K FLASH、20K SRAM、USB、CAN、12位ADC、SPI、IIC、TIMER、USART、RTC、DMA等,基本上,你能想到的,它都有了。显然,此时的MEGA128已经毫无竞争力了。现在STM32低配置的芯片,STM32F101C4,16K FLASH,4K SRAM,价格在10块钱左右。F103较低配置的STM32F103C8,也卖到了13块钱一个,64K FLASH,20K SRAM,带USB和CAN。单从这2个数据,就能说明很多问题了。
再说LM3S,应该是和STM32一同推上市场的,至少不会比STM32晚,据说当时敢尝CM3螃蟹的就流名和ST。周立功还选择了推流明,后面也不知道什么原因,一直没见流明起来,可能周立功和流明,都有错吧(脑子被驴踢了可能)。却见STM32是打得红红火火。如今流明(被TI收购了)已经没办法和STM32竞争了。估计老周也很郁闷吧,当时怎么就没推STM32呢?呵呵。
继续说STM32,STM32现在推出的型号,从最低的10块钱的,到最高端的STM32F103ZET6,价格也不过40元不到。其中包括的型号,有50种之多。用户可以随便选择满足自己需求的产品。高端方面,STM32还推了F105/F107系列。强化了USB和网络的功能。这方面AVR32,从淘宝上看到的最低价格是30元左右,具体配置没去看了。AVR32同STM32最大的缺点就是下载程序不方便,人家得专门为你做个下载器,或者从你那里买,OURAVR论坛上也有人搞了下载器出来,还真佩服这些哥们,挺厉害的。
不过STM32呢?支持JTAG,支持串口下载。 这就把学习STM32的门槛一下降低了,加上KEIL对STM32的支持,比学习AVR的门槛还低了。这就很快的培养了大批使用者。其次,STM32的中文支持,做的也很到位,中文的《参考手册》,中文的《CM3权威指南》,给用户提供了很大的便利。反观其他,LPC和爱特梅尔由于之前不敢吃螃蟹,到现在他们的CM3构架芯片,都还在襁褓之中,LM3S虽然和ST一起吃了螃蟹,不过没搞好,算是玩完了。所以,现在就剩下ST独领风骚了。
总结下来,STM32具有价格低、功能强、使用简单、开发方便等几个很有利的优势,所以对有志于32位市场应用开发的人,都应该学学。
在应用上,我认为STM32设计的比较方便的地方有:
1) 复用IO口重映射功能。
由于有些复用功能可以重映射,使得在STM32的PCB设计的时候,方便很多。
2) 全部引脚都可以作为中断输入。
全部IO口都可以作为中断输入,这点比很多ARM好,当要使用中断的时候,随便那个IO口都可以,而不需要接到特定的几个脚上,这样极大的方便了设计,不论原理图设计还是PCB设计。
3) SWD调试支持。
STM32支持SWD调试,只需要2跟IO线,就可以用来调试和下载代码,对引脚不多的型号尤其适用。
4) 串口下载程序。
串口下载代码很多ARM都具有这个功能,STM32也保留了这一优秀设计,极大的降低了开发成本(不需要什么JLINK、ULINK之类的了,也不需要专门的下载器)。
本手册正是根据STM32的特点,结合实例逐一介绍其功能,取名为《STM32不完全手册》有如下几个原因:
1, 本手册虽然逐一介绍了STM32的各个功能,但一些我不熟悉的介绍的比较简单,比如USB部分。
2, 对我不了解,没用过的CAN口,本手册并未提及。、
3, 本手册针对的是STM32F103RBT6的外设,对STM32其他系列的产品并不能完全兼顾,比如ZE系列有的DAC和FSMC部分,本手册并没有介绍。
鉴于以上三点,所以本手册取了这个名字。希望在以后的学习中,能不断丰富该手册,最终能给STM32学习者一点参考。本手册参考最多的是《STM32参考手册》以及《CM3权威指南》,很多地方摘自这两个文档,另外有很多资料及代码也都参考了网友的,有了他们的奉献及开源,才有了《STM32不完全手册》。
后面,该手册可能会不定期更新和勘误,此版本定为V1.0,后续的版本将会根据修订情况相应更改。
正点原子@ALIENTEKE
2010-7-8
用户1668196 2013-10-16 20:03
用户319475 2010-12-5 17:36
用户278923 2010-8-3 16:50
用户166298 2010-7-16 16:32
liujun6037_345432000 2010-7-15 17:13
用户166298 2010-7-15 14:48