楼主的故事:
楼主之前使用的是AT89S52单片机,后来别人给我推荐STM32F103ZE这块片子,用起来非常爽,于是自己就将AT的51给淘汰了,紧接着楼主于前年偶然的机会接触到了STM32这块片子,做了一些项目、参加竞赛感觉很不错!为什么这样说呢?因为它大大优于传统的51单片机。请看如下介绍:(以下引用ST公司官方数据手册资料www.st.com.)
Mainstream Performance line, ARM Cortex-M3 MCU with 512 Kbytes Flash, 72 MHz CPU, motor control, USB and CAN
- 活性
STM32F103xC、STM32F103xD和STM32F103xE增强型产品系列集成了工作频率为72MHz的高性能ARM®Cortex™-M3 32位RISC内核、高速嵌入式存储器(Flash存储器和SRAM的容量分别高达512K字节和64K字节),和大量连至2条APB总线的增强型I/O 与外设。 所有产品均带有3个12位ADC、4个16位通用定时器和2个PWM定时器,以及标准与高级通信接口:22个I²C、3个SPI、2个I²S、21个SDIO、5个USART、1个USB和1个CAN。
STM32F103xx大容量增强型产品系列的工作温度范围是–40~+105°C,供电电压范围是2.0~3.6V。 适于低功耗应用设计的一组完整的节电模式。
这些特性让STM32F103xx大容量增强型微控制器产品系列成为各种应用的理想之选,例如电机驱动、应用控制、医疗和手持式设备、PC和游戏外设、GPS平台、工业应用、PLC、逆变器、打印机、扫描仪、警报系统、视频电话和HVAC。
Key Features
- 内核:ARM 32位Cortex™-M3 CPU
- 72 MHz最高主频, 1.25 DMIPS/MHz (Dhrystone 2.1) performance at 0 wait state memory access
- 单指令乘法与硬件除法
- 存储器
- 256 to 512 Kbytes of Flash memory
- up to 64 Kbytes of SRAM
- Flexible static memory controller with 4 Chip Select. Supports Compact Flash, SRAM, PSRAM, NOR and NAND memories
- LCD parallel interface, 8080/6800 modes
- 时钟、复位和电源管理
- 2.0 to 3.6 V application supply and I/Os
- POR, PDR, and programmable voltage detector (PVD)
- 4-to-16 MHz crystal oscillator
- Internal 8 MHz factory-trimmed RC
- Internal 40 kHz RC with calibration
- 32 kHz oscillator for RTC with calibration
- 低功耗
- Sleep, Stop and Standby modes
- VBAT supply for RTC and backup registers
- 3个12位、1μs A/D转换器(多达21通道)
- Conversion range: 0 to 3.6 V
- Triple-sample and hold capability
- Temperature sensor
- 2个12位D/A转换器
- DMA:12通道DMA控制器
- Supported peripherals: timers, ADCs, DAC, SDIO, I2Ss, SPIs, I2Cs and USARTs
- 调试模式
- Serial wire debug (SWD) & JTAG interfaces
- Cortex-M3 Embedded Trace Macrocell™
- 多达112个高速I/O端口
- 51/80/112 I/Os, all mappable on 16 external interrupt vectors and almost all 5 V-tolerant
- 多达11个定时器
- Up to four 16-bit timers, each with up to 4 IC/OC/PWM or pulse counter and quadrature (incremental) encoder input
- 2 × 16-bit motor control PWM timers with dead-time generation and emergency stop
- 2 × watchdog timers (Independent and Window)
- SysTick timer: a 24-bit downcounter
- 2 × 16-bit basic timers to drive the DAC
- 多达13个通信接口
- Up to 2 × I2C interfaces (SMBus/PMBus)
- Up to 5 USARTs (ISO 7816 interface, LIN, IrDA capability, modem control)
- Up to 3 SPIs (18 Mbit/s), 2 with I2S interface multiplexed
- CAN interface (2.0B Active)
- USB 2.0 full speed interface
- SDIO interface
- CRC计算单元、96位唯一ID
- ECOPACK®封装
看过了上面种种优点后,楼主继续故事,那年楼主学习完了普通的8051后感觉不爽,主要是51资源、性能有限,于是经人介绍后果断就去投奔了STM32(主要是自己不用再写PWM程序了,万恶的定时器…表示那会儿初来乍到,写起来很是头疼)其次由于STM32是72MHz的速度,用起来也比普通8051畅爽不少,就毅然决然的抛弃了AT89C51了……再后来一场比赛又改变了我,那时正值STM32铺货时光,楼主碰巧摩拳擦掌准备找几个项目做做,偶然发现ST举办了一个比赛,本想用STC12撸一次,后面发现官方要求使用STM32F103这个单片机,这下傻了,但是年轻气盛的,上某宝撸了几块回来,开始各种问题啊……(这些暂时卖个关子,等以后实际应用给大家说)最终比赛还剩完成了,STM32耍的也差不多。
前段时间看见论坛里面招人,想想楼主以前有幸得到了这个名额,于是再度出马,希望借由此机会带大家撸平这块芯片,同时也让自己好好再扎实基础,也让大家能更多学习单片机知识。在此非常感谢Jackwang的信任!
最终要分享给大家的是,STM32这块片子实际应用中的优点是:
1. 多种晶振数值可选、复位电路,内部有掉电复位,上电复位等多种可靠复位电路,这个非常实用,做设计的时候能很方便,也省了很多事情,再也不用为更换晶振什么的发愁了。
2. 外设比较丰富,ADC、DAC、PWM、等等基本日常应用完全足够了。
3. 最重要的是,咱们使用STM32来做项目开发,因为是基于C语言的库文件调用的,编程风格也贴近,所以开发周期可以很短。
4. 更多的等待你的发现……。
下面我们来详细看一下ST官方的这块板子吧!
根据上面两张图,我们能够很清晰的看到整版布局,以及搭载了何种外围电路,这些基本外围电路对于初学来说已经非常充实了,如果后期还需要其它模块,我们还可以在面包板(洞洞板)部分焊接出来使用,板子设计的很人性化,留了自己动手设计的余地。
多的不说啦,就想给大家粗略的看一下,以及做好准备工作和我们一起撸平这块板子吧!
准备工作如下:
1. 首先我们不需要再下载串口驱动了。使用jlink v8在线调试,非常方便我们查看MCU的寄存器与程序变量。
2. 待上一步完成后我们进行IAR软件安装与破解,安装的说明也打包了。 这里暂时隐去了,毕竟要和谐嘛!
以上两步完成后,我们就要留个活儿给大家了:
尝试建立一下新工程文件。注意:IAR软件已经自带了STM32F103ZE的配置文件,安装完成后可以直接使用,不用像Keil C51那样再添加STC的配置包。
直接新建工程,在Device里选择STM32F103ZE器件即可。方便~~
至此,咱们预告也就差不多了,详情请大家继续关注该论坛板块共同学习!
以下附几个相关链接:
拿到STM32的签到:
http://forum.eepw.com.cn/thread/209058/1
STM32 DIY活动版块:
http://forum.eepw.com.cn/forum/275/1
ST官方网站:
Jobs:分享使人进步,同时发现自身不足!
若有疑问可直接在下跟帖提问,Jobs会根据你的疑问为你解答!
提问格式:
问题标题:
问题描述:
问题现象:
最后,衷心感谢大家的支持!
Jobs
2014-11-21