1、奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 奋斗版 STM32 开发板 V3.1 入门手册 基础知识篇 作为 STM32 的初学者,首先需要了解硬件资源, STM32 是意法半导体推出的基于CoreTex-M3 内核的 32 位 ARM, 目前主要有 5 个系列、 奋斗版 STM32 开发板的 V3.1 选用了 STM3 2F103VET6 作为开发板的 MCU。这个芯片属于STM32F103 系列的高容量芯片, QFP100 封装, 主要特征: 64K 片内 SRAM 512K 片内 FLASH。具有 FSMC 接口(并行外设外设接口,TFT 模块就是通
2、过这个连接的) ,SDIO 4 位接口(SD卡的专用接口,速度更高) 。 之所以选用这个芯片作为开发板的 MCU,主要是基于以下几点: 1-容量大,是 STM32 系列里,容量最大的芯片 2-体积适中 QFP100 脚封装,从大型设备到手持设备都可以选用。 3-FSMC 接口 由于板上设计有 TFT 模块, 因此选用具有 FSMC 接口的芯片是必然的。 4-SDIO 接口 作为一个嵌入式的平台,大容量 SD 存储是必须考虑的, 可以在 SD 上建立文件系统及大容量文件存取。 5-性价比高, 该芯片的批量采购价格在 30 元左右,渠道稳定,适合工程选用。 很多用户先前都是从 51 平台转过来的,
3、 对单片机的经验还停留在 51 带给我们的简单易用上,51 单片机的资源简单,且口线定义唯一。 相对高端的 51 型单片机(如 SILICON C8051F 系列,AVR 等)可以做到一定的口线复用(就是一个口线可以具有多种复用功能) ,51 在处理对计算速度及控制速度相对不高的应用,还是具有很好的性价比及应用性。近几年,随着应用技术的发展, 产品对嵌入式技术要求越来越高,51 单片机已经不能满足复杂奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 嵌入式应用要求, 在 ARM 技术发展过程中,coretex-M3 内核应运而生,它的各项能力使得它成为微控领域之
4、王,STM32 是这种内核的产物, 是目前 coretex-M3 内核平台里最具性价比的平台,可以预见,未来几年里,STM32 会很快占据微控平台市场。 硬件篇: 奋斗版 STM32 开发板 V3.1 板,可选配奋斗嵌入式开发工作室的 2.4 寸(240X320)TFT显示器、3 寸(240X400)TFT 显示器,4.3 寸(48 0X272)TFT 显示器及 7 寸(800X480)显示方案。外接电源都是 5V, 在学习过程中,可以用所配的 USB 线通过电脑给板子提供电源。但也有可能由于一些电脑的 USB 供电能力太弱,提供不了足够的电流,此时就需要外接 5V电源给板子供电了,否则会造成
5、板子工作不正常的现象。 V3 板可以通过电源插座提供 5V 接口。 请配合原理图及硬件手册来了解奋斗 STM32 开发板的详细资源。 V3.1 板资源: (详细资源描述参考) 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ .CPU: STM32F103VET6, TQFP100 脚;FLASH:512K BYTES, SRAM:64KBYTES .1 个 JTAG 调试接口 .1 个电源 LED(橙色) ,3 个状态 LED(蓝色) .2 个 RS232,UART1 支持 3 线 ISP。 (与计算机连接需要母对母交叉连接线) .1 个 TTL 异步通信接口
6、。 .1 个 CAN 总线接口 .1 个 USB2.0 SLAVE 全速模式接口。 (此接口可以作为供电接口,也作为 USB 通信接口) 。 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ .1 个 Micro SD(TF)卡插 座,接口采用 SDIO 4 位方式。 .1 个 LCD 接口, 利用特有的 FSMC 16 位接口模式控制。 .1 个 SPI 总线控制的 SST25VF016B (2M BYTES)的串行 FLASH .1 个 RTC 后备电池座带电池 .1 个 SPI 总线控制的 ENC28J60 网络接口(10M) .1 个 I2C 总线控制的
7、 FM 收音模块(TEA5767) .1 个 SPI 总线控制的 VS1003 MP3 音频解码电路。 .1 个话音输入接口。 .1 个 SPI 方式的 NRF24L01 2.4G 无线模块接口。 .通用 GPIO 接口 .板载 4 个微型按键 .板子尺寸: 126mmX98mm。 奋斗开发板标配 2.4 寸 TFT 显示器: 该模块是奋斗版 STM32 开发板 V3 及 MINI 板的配套模块, 采用 STM32 的 FSMC 接口模式。显示速度更快。 2.4 寸 QVGA 屏, 分辨率 240X320, 64K 色, 数据接口 16 位, 背光源是 4 LED串联模式, 背光驱动采用白光驱
8、动器提供背光用的横流源, 使背光更加均匀,背光明暗控制采用 TTL 电平或者 PWM 模式控制。屏上带电阻式触摸屏, 模块板上带 SPI 控制方式的触摸屏控制电路。 奋斗开发板配 3 寸 TFT 显示器: 该模块是奋斗版 STM32 开发板 V3 及 MINI 板的配套模块, 采用 STM32 的 FSMC 接口模式。显示速度更快。3 寸屏, 分辨率 240X400, 64K 色,数据接口 16 位,背光源是 4 LED 并联模式, 背光驱动采用白光驱动器提供背光用的横流源, 使背光更加均匀,背光明暗控制采用 TTL 电平或者 PWM 模式控制。屏上带电阻式触摸屏, 模块板上带 SPI 控制方
9、式的触摸屏控制电路。 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 奋斗开发板配 4.3 寸 TFT 显示器: 该模块是奋斗版 STM32 开发板 V3 及 MINI 板的配套模块, 采用 STM32 的 FSMC 接口模式。SSD1963 作为控制驱动器,显示速度更快。4.3 寸屏 , 分辨率 480X272, 64K 色,数据接口 16 位, 背光驱动采用白光驱动器提供背光用的横流源, 使背光更加均匀,背光明暗控制采用 TTL 电平或者 PWM 模式控制。屏上带电阻式触摸屏, 模块板上带 SPI 控制方式的触摸屏控制电路。 奋斗开发板配 7 寸 TFT
10、显示方案: 该方案是奋斗版 STM32 开发板 V3 及 MINI 板的大屏配套方案,采用 STM32 的 FSMC 接口模式。 CPLD+SDRAM 控制驱动放,包含了 7 寸驱动板 +TCON 板 +群创 TN92 屏 +7 寸奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 触摸屏 ,显示速度更快。 7 寸屏, 分辨率 800X480, 64K 色,数据接口 16 位,背光明暗控制采用 TTL 电平或者 PWM 模式控制。屏上带电阻式触摸屏, 模块板上带 SPI 控制方式的触摸屏控制电路。 奋斗开发板的其他配件: JLINK V8 仿真器(如果是初学 ST
11、M32 ,强烈建议拥有一个,对于学习很方便) J-Link 是 SEGGER 公司为支持仿真 ARM 内核芯片推出的 JTAG 仿真器。配合 IAR EWARM,ADS,KEIL,WINARM,RealView 等集成开发环境支持所有 ARM7/ARM9 内核芯片的仿真,通过RDI 接口和各集成开发环境无缝连接,操作方便、连接方便、简单易学,是学习开发 ARM 最好最实用的开发工具。J-Link ARM 主要特点: *IAR EWARM 集成开发环境无缝连接的 JTAG 仿真器 *支持所有 ARM7/ARM9 内核的芯片,以及 cortex M3,包括 Thumb 模式 *支持 ADS,IAR
12、,KEIL, WINARM,REALVIEW 等几乎所有的开发环境 *下载速度高达 ARM7:600kB/s ,ARM9:550kB/s,通过 DCC 最高可达 800 kB/s *最高 JTAG 速度 12 MHz *目标板电压范围 1.2V 3.3V,5V 兼容 *自动速度识别功能 *监测所有 JTAG 信号和目标板电压 *完全即插即用 *使用 USB 电源(但不对目标板供电) *带 USB 连接线和 20 芯扁平电缆 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ *支持多 JTAG 器件串行连接 *标准 20 芯 JTAG 仿真插头 *选配 14 芯
13、JTAG 仿真插头 *选配用于 5V 目标板的适配器 *带 J-Link TCP/IP server,允许通过 TCP/ IP 网络使用 J-Link J-Link 支持 ARM 内核: * ARM7TDMI(Rev 1) * ARM7TDMI(Rev 3) * ARM7TDMI-S(Rev 4) * ARM720T * ARM920T * ARM926EJ-S * ARM946E-S * ARM966E-S * ARM11 * Cortex-M3 2.4G NRF24L01+模块 在 2.4G 通信领域,我们选用了 NRF24L01+模块作为奋斗板配件,这个可以使奋斗板具有2Mbit/s 1
14、Mbit/s 250Kbit/s 三种可选传输速率的无线数据通信能力。 硬件提供同时 6 个接收机的功能 片内的链路层使软件设计更为简单 2Mbit/s 使得高质量的 VoIP 成为可能 2Mbit/s 1Mbit/s 250Kbit/s 三种可选传输速率 极少的外围元件为低成本提供了可能 5V 容忍度的电平输入 改进的 ShockBurst 和串行接口可便于与各种低成本 MCU 连接 无需带 SPI 接口的 MCU 在 2Mbit/s 速率下接收时的峰值电流 12.5mA 在 2Mbit/s 速率下0dBm 输出时的峰值电流 11mA 2Mbit/s 的速率只需很小的平均电流 掉电模式下的功
15、耗 400nA 待机模式下的功耗 32uA 130us 的快速切换和唤醒时间 具有片内稳压器 oltage regulators 可在 1.9 to 3.6V 低电压工作 最大可能减少噪声 应用范围: 鼠标键盘、无线耳机、智能运动设备、 遥控装置、 语音应用、 安全装置、VOIP 应用、玩具 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 开发环境篇: 奋斗版 STM32 开发板 MINI 及 V3 的例程工程编写均基于 RealView MDK-ARM3.80a 开发环境, 工
16、程里所包含的库大部分采用了 STM32 标准库 3.5.0, MDK 开发环境支持 JLINK、 ULINK、ST-LINK 的在线仿真及下载。 MDK 环境的学习可以参考奋斗板光盘里的 MDK 视频教程。 在MDK下下载程序的详细说明可参考奋斗板光盘里的奋斗板文档目录下的下载步骤文档。 作为一个初学者,拿到奋斗 STM32 开发板后,都迫切的想去编译并下载一个例程,来亲身尝试一下操纵 STM32 以带给我们实际感受。 在先了解了 STM32 的知识及奋斗 STM32 开发板的硬件后,我们来引导尝试一下这个实际的过程。 作为初学,可以选取简单的例程来做这个体验,我们选取例程相应目录中的STM3
17、2 奋斗板-LED 闪烁例程。 第一步:先将 JLINK V8 的驱动装到电脑里。 这个驱动在奋斗板光盘 jlink V8 目录下,运行该程序, 可将 JLINK V8 的驱动安装到 PC 机上。 第二步: 安装好 MDK 开发环境后, 在 PC 上运行 MDK, , 打开例程目录下的 STM32奋斗板-LED 闪烁例程工程文件 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 打开工程后,点按钮 , 开始编译工程,经过一段时间后,编译完成,生成了目标代码。可用于下载到板子里,在其余的例程编译过程中,如果出现编译错误,请参考光盘根目录的解决方法。 编译完成后,将
18、 JLINK V8 的 JTAG 电缆插入板子上的 JTAG 接口,将 JLINK V8用 USB 线连到 PC 上。对工程进行如下的仿真及下载环境设置。 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 下载环境设置完成后,点击 将例程下载进奋斗板中,下载完成后开发板会自动复位运行例程,可以看到板子上的蓝色发光二极管闪烁起来。 如果出现如下的下载失败提示,请检查连线或者工程下载环境设置。 其余的例程打开及下载过程同以上的过程。 奋斗版 STM32 开发板文档 http:/ 奋斗嵌
19、入式开发工作室 http:/ 例程篇: 奋斗版 STM32 开发板光盘,包含了 V3.1 的 所有例程。例程分为基础例程及 ucos ucgui 应用例程。 V3.1 基础例程: 1. LED 闪烁例程: 演示了一个 LED 的闪烁控制,学习了 GPIO 端口控制功能的使用。 2. SPI SST25VF016B 读写例程: 演示了通过 SPI 写入 SST25VF016B 一个字符串,并读出验证。学习了硬件 SPI 功能及串行 SPI FLASH 的使用。 3.SST25VF016B 的文件系统 FATFS0.08b 例程: 演示了在 SPI FLASH 上实现了一个 FATFS 文件系统,
20、并将上面的 TXT 文件内容通过串口打印出来。 学些了文件系统 FTAFS 在 SPI FLASH SST25VF016B 上的应用。 4. EXTI 键盘中断例程: 演示了基于 EXTI 中断方式的按键控制 LED 灯亮灭,学习了 EXTI 中断方式的编程方法。 5. TIM3 的 CH2 通道产生特定频率的波形例程: 演示了在 TIM3 的 CH2 通道产生一个特定频率的波形。学习了定时器产生频率波形的编程方法。 6. TIM3 的 CH2 通道产生 PWM 波形例程: 演示了在 TIM3 的 CH2 通道产生一个特定频率的 PWM 波形。学习了定时器产生 PWM 的编程方法。 7. RT
21、C 实时时钟例程: 演示了 RTC 实时时钟的产生及通过串口输出时间信息。 学了 RTC 的编程方法。 8. 异步串口 1 通信例程: 演示了串口 1 的收发过程。 学习了 USART1 的编程方法。 9. 异步串口 2 通信例程: 演示了串口 2 的收发过程。 学习了 USART2 的编程方法。 10. 播放 SD 卡 MP3 及其他类型音乐文件例程: 演示了播放 SD 卡根目录下的 MP3 类型文件的过程。 学习了 VS1003 MP3 播放的编程方法及 FATFS 在 SD 卡上的应用。 11. FM 收音机例程: 演示了 FM 收音机的搜台及点播某台的过程。 学习了 TEA5767 F
22、M 收音机电路的编程方法及 I2C 的编程方法。 12. ADC 采样例程: 演示了通过 DMA 方式,将采样的 AD 信息通过串口打印出来。 学习了 ADC 及 DMA 的编程方法。 13 CAN 总线收发例程: 演示了 CAN 总线通信的通信收发。用 LED 指示通信的状态。 学习了 CAN 总线通信的编程方法。 14. SDIO 接口方式的 SD 卡读写例程(支持 SDIO 4 位模式,支持 SDHC 卡): 演示了通过 SDIO 写入 SD 卡一个字符串,并读出验证。学习了 SDIO 及 SD 卡驱动的编程。 15. SDIO 接口方式的 SD 卡上的文件系统 Tini Fatfs0.
23、08b 例程(SDIO 4 位模式,支持 SDHC 卡): 演示了在 SD 卡上实现 FATFS 文件系统, 并将 卡上根目录的 TXT 文件内容通过串口打印出来。学习了 SDIO 及 FATFS 在 SD 上的应用编程方法。 16. FSMC 16 位模式的显示例程: 演示了在 2.4 寸显示器上显示图片及文字。学习了 FSMC 的编程方法,及显示驱动编程。 17. 电阻式触摸屏演示例程: 演示了在对 2.4 显示器的触摸校准及选择颜色随意画图的过程,学习了显示驱动编程及触摸校准及采样的编程。 18. PC 机通过 USB 接口读写 SD 卡的例程(SDIO 4 位模式,支持 SDHC 卡)
24、: 演示了实现 SD 卡成为 U 盘的过程。学习了 SDIO 的编程方法及 USB MASS STORAGE 类驱动的的编程方法。 19. PC 机通过 USB 接口读写 SST25VF016B 的例程 (2M U 盘 ) : 演示了实现 SPI FLASH 器件成为 U 盘的过程。 学习了 SPI 的编程方法及 USB MASS STORAGE 类的的编程方法。 20. 基于 UIP1.0 网络协议栈的 ENC28J60 网络模块例程: 演示了网络协议栈 uip1.0 在 ENC28J60 上的实现,学习了 ENC28J60 的驱动编程和 UIP1.0 应用的编程方法。 21. NRF24L
25、01 转 USB 虚拟串口例程: 演示了 2.4G 无线与 USB 虚拟串口之间数据互转的功能,学习了 NRF24L01 的编程方法及 USB 的通信类驱动编 程方法 22. USB 在线编程 MCU 的驱动例程: 实现了通过 USB 在线下载用户程序的 STM32 固件。 2.4 寸屏的 uCosII uCGUI 应用例程 1. 优化驱动的基于 ucos2.86, UCGUI3.90A 的演示例程。 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 2. 基于 ucos2.86, UCGUI3.90A 的 GIF 动画演示例程。 3. 基于 ucos2.86,
26、 UCGUI3.90A 的 LCD 背光调节演示例程 4. 基于 ucos2.86, UCGUI3.90A 的 NRF24L01 模块通信演示例程。 5. 基于 ucos ucgui 的 LED 定时闪烁例程 演示视频 http:/ 6. 基于 ucos 的 LED 定时闪烁例程(含实验手册) 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 7. 基于 ucos ucgui 的实时时钟的设置及显示例程 8. 基于裸跑 ucgui 的实时时钟的设置及显示例程 9. 基于 ucos ucgui 的 2 个通道 ADC 的采集及显示例程 10.基于 ucos ucg
27、ui 的智能小车的控制平台例程 视频链接如下: 奋斗 STM32 MINI 板驱动圆梦小车 3-慢速直行 http:/ 奋斗 STM32 MINI 板驱动圆梦小车 3-快速直行 http:/ 奋斗 STM32 MINI 板驱动圆梦小车 3-转弯 http:/ 奋斗 STM32 MINI 板驱动圆梦小车 3-倒行 http:/ 奋斗 STM32 MINI 板驱动圆梦小车 3-综合操作 http:/ 11.基于 ucos ucgui 的 GPS 星图显示例程。 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 12.基于 ucos ucgui 的 FM 收音机例程。
28、 13 基于 ucos ucgui 的 uip1.0 网络例程。 14 基于 ucos ucgui 的 SST25VF016B 文件系统例程( Fatfs0.08b) 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 15 基于 ucos ucgui 的 SD 卡文件系统例程( Fatfs0.08b) 16 基于 ucos ucgui 的 SD 卡 MP3 播放例程( Fatfs0.08b) 17 基于 ucos ucgui 的 CAN 通信例程 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 http:/ 基于奋斗板的 uCGUI3.90a
29、 源码 : ucgui_lib 目录: 这是移植好的横版显示奋斗板 ucgui 源代码。奋斗板的横板显示的 ucgui 例程工程中的ucgui 库是经过这个工程编译得到的 ucgui_lib-ZS 目录: 这是移植好的竖版显示奋斗板 ucgui 源代码。奋斗板的竖版显示的 ucgui 例程工程中的 ucgui 库是经过这 基于 3 寸屏(240X400)模块的显示例程: 1. 优化驱动的基于 ucos2.86, UCGUI3.90A 的演示例程。 2. 基于 ucos2.86, UCGUI3.90A 的 GIF 动画演示例程。 3. 基于 ucos2.86, UCGUI3.90A 的 LCD
30、背光调节演示例程。 4. 基于 ucos2.86, UCGUI3.90A 的 NRF24L01 模块通信演示例程(含例程手册)。 5. 基于 ucos ucgui 的 LED 定时闪烁例程(含实验手册) 6. 基于 ucos 的 LED 定时闪烁例程(含实验手册) 7. 基于 ucos ucgui 的实时时钟的设置及显示例程(含实验手册) 8. 基于裸跑 ucgui 的实时时钟的设置及显示例程 9. 基于 ucos ucgui 的 2 个通道 ADC 的采集及显示例程 10.基于 ucos ucgui 的智能小车的控制平台例程 11.基于 ucos ucgui 的 GPS 星图显示例程。 12
31、.基于 ucos ucgui 的 FM 收音机例程。 13 基于 ucos ucgui 的 uip1.0 网络例程。 14 基于 ucos ucgui 的 SST25VF016B 文件系统例程( Fatfs0.08b) 15 基于 ucos ucgui 的 SD 卡文件系统例程( Fatfs0.08b) 16 基于 ucos ucgui 的 SD 卡 MP3 播放例程( Fatfs0.08b) 17 基于 ucos ucgui 的 CAN 通信例程 18 基于 ucos ucgui 的三轴加速度传感器 MMA7455L 例程 19 基于 ucos ucgui 的 Zigbee 模块 CC253
32、0 的通信例程 20 基于 ucos ucgui 的 USB HID 类例程 -屏幕按键控制 PC 鼠标移动例程 基于 4.3 寸屏(480X272)模块的显示例程: 1. 优化驱动的基于 ucos2.86, UCGUI3.90A 的演示例程。 2. 基于 ucos2.86, UCGUI3.90A 的 GIF 动画演示例程。 3. 基于 ucos2.86, UCGUI3.90A 的 NRF24L01 模块通信演示例程(含例程手册)。 4. 基于 ucos ucgui 的 LED 定时闪烁例程(含实验手册) 5. 基于 ucos 的 LED 定时闪烁例程(含实验手册) 6. 基于 ucos uc
33、gui 的实时时钟的设置及显示例程(含实验手册) 7. 基于裸跑 ucgui 的实时时钟的设置及显示例程 8. 基于 ucos ucgui 的 2 个通道 ADC 的采集及显示例程 9.基于 ucos ucgui 的智能小车的控制平台例程 10.基于 ucos ucgui 的 GPS 星图显示例程。 11.基于 ucos ucgui 的 FM 收音机例程。 12 基于 ucos ucgui 的 uip1.0 网络例程。 13 基于 ucos ucgui 的 SST25VF016B 文件系统例程( Fatfs0.08b) 奋斗版 STM32 开发板文档 http:/ 奋斗嵌入式开发工作室 htt
34、p:/ 14 基于 ucos ucgui 的 SD 卡文件系统例程( Fatfs0.08b) 15 基于 ucos ucgui 的 SD 卡 MP3 播放例程( Fatfs0.08b) 16 基于 ucos ucgui 的 CAN 通信例程 17 基于 ucos ucgui 的三轴加速度传感器 MMA7455L 例程 18 基于 ucos ucgui 的 Zigbee 模块 CC2530 的通信例程 19 基于 ucos ucgui 的 USB HID 类例程 -屏幕按键控制 PC 鼠标移动例程 基于 7 寸屏(800X480)模块的显示例程: STM32 奋斗板-触摸屏: 基于 7 寸屏的触摸屏画图例程 ucos+ucgui_奋斗大屏驱动卡: 基于 7 寸屏的 ucgui 演示例程 奋斗读屏操作例程_底层驱动全: 基于 7 寸屏的显示屏演示例程 2012 年 3 月 6 日 于西安 奋斗嵌入式开发工作室