白玛卓玛 发表于 2015-6-5 23:58:10

[资源共享]STM32应用开发所需的基本资料及工具

             STM32应用开发所需的基本资料及工具
               整理: Miler Shao

毋庸置疑,越来越多的人加入STM32系列MCU的开发,STM32开发工程师的队伍也越来越庞大,网络上相关的技术资料可以说是比比皆是,个人甚至觉得有点泛滥的地步。加上ST MCU的芯片出得快、资料更新频繁,导致各路网上的资料各期版本都有,五花八门,有时甚至给开发带来些困扰。关于资料的下载个人推荐www.st.com/mcu 或者www.st.com/stm32,结合关键字的查找不难找到自己需要的。不行的话,可以向STMCU代理商的FAE协助,他们经常找的,路径地址什么的相对来说比较熟悉。 对于打算从事STM32开发应用的朋友来说,前期需要哪些最基本的工具或技术资料,这里跟大家分享下。我分硬件方面和软件方面【我这里软件是广义的,不仅仅指程序代码】来说。 一、硬件方面:1.1、调试工具。我们一般用STLINK/JLINK/ULINK,建议首选STLINK,因为STLINK是ST公司自己出的,针对性强,正版、便宜。最关键的是ST MCU的芯片型号及相关驱动更新得快,相应的驱动更新升级容易跟得上,不用折腾到处找破解升级等。当然国内市面上也有山寨版,这些不能说不能用,你自行掂量取舍。不过有时工具的便利性可能会影响到工作效率,毕竟时间也是成本。    http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/f58t.*xZfkYqyNFdNGDEtgoVEnWKxVyDgQ6fCrfjmmM!/b/dGQAAAAAAAAA&ek=1&kp=1&pt=0&bo=ZgJYAQAAAAAFAB4!&su=01196081&sce=0-12-12&rf=2-9 1.2、学习评估板。当然这个并非必须的,只是说如果有个现存的学习板或评估板,相对会方便些,尤其对于新手。ST 官方针对各个STM32系列有推出一些学习板,主要有3类。1.2.1最常见的就是各个系列的探索型学习板,也就是DISCOVERY型学习板。利用它可以针对STM32芯片的基本功能和外设做些体验性的测试或验证。此类板价格比较便宜,功能没做过多的扩展或延伸,但就芯片的基本功能特性做些验证应该也绰绰有余了。同时ST也附有跟探索板配套的软硬件资料供客户使用和参考。下面三幅图分别是STM32F0某个系列、STM32F3系列及32F4某系列的DISCOVERY型学习板。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/q6PW5xvz.3aUgC*sjbu68dhWjMrDSjhQKACiWZfBAJA!/b/dAgAAAAAAAAA&ek=1&kp=1&pt=0&bo=FgFHAQAAAAAFAHI!&su=040103761&sce=0-12-12&rf=2-9                                     http://a2.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/sXOpCnHqCYg6sF35uWrw*XLHan.9L0vfnB4xXrNbDcg!/b/dGUAAAAAAAAA&ek=1&kp=1&pt=0&bo=LAGZAQAAAAAFAJY!&su=0168093937&sce=0-12-12&rf=2-9                                                 STM32F4DISCOVERRY                                        http://a3.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/RneWpAJKutFmaGqn26sdiohdGM5SQInZXYBRD7qgaCo!/b/dGoAAAAAAAAA&ek=1&kp=1&pt=0&bo=9QCCAQAAAAAFAFU!&su=0265012737&sce=0-12-12&rf=2-9 1.2.2、ST官方也针对STM32各系列推出了比DISCOVERY型学习板功能更为强大的评估型学习板,即官方的EVAL BOARD。其外设应用得到最大程度的丰富与拓展、人机界面更为方便直观,参考应用软件更为全面细致。不过其价格不菲,一般在千元人民币以上,购买者似乎不多。下面就分别是针对32F10X系列和STM32F4系列的两评估学习板,STM3210C-EVAL和STM32F40G-EVAL。               http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/BbexkMiS5k2T7mD9k9E*V7Sq0Cly5ttGFvsZNUXe.qo!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=CgFiAQAAAAAFAEs!&su=073404385&sce=0-12-12&rf=2-9             http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/XoNi1WQ60.DsFi3a5SnRpLZs6wvKZVGkZ7Z1GsbkPqs!/b/dAgAAAAAAAAA&ek=1&kp=1&pt=0&bo=HQGEAQAAAAAFALo!&su=0677505&sce=0-12-12&rf=2-9    1.2.3 ST官方又主导推出了一种针对STM32开发应用的Nucleo学习板,它最大特点是扩展方便,带Arduilu的兼容接口,支持云端开发,可以直接自由访问mbeg.org并免费使用其各类IDE工具和应用驱动资源。下面是块Nucleo板的基本框架介绍。                  http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/woE4wgfvEsn8SUBMwk7o7wlPZfWaIYC*AcfudcZKJtg!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=3gF2AQAAAAAFAIs!&su=0145205489&sce=0-12-12&rf=2-9 除此之外,国内也有不少专门做STM32开发学习板的个人或团体,产品各有特色,淘宝店很多类似产品。其硬件应用线路基本以上面提到的ST官方推出的STM32评估板的线路为基础,软件代码基本以ST官方对外的固件库和评估板的相关应用驱动代码为基础。他们在ST MCU本身及相关应用技术资料的汉化及讲解方面,功不可没。最后顺便提下,如果需要参考电路图的话,上面提到的各类学习板都可以找到相应参考应用电路。二、软件方面2.1、编译环境的准备。国内最常用的编译工具一般是Keil MDK ARM 和 IAR EMBEDDED WORKBENCH.当然还有其它IDE,当然也有用其它IDE的,比方TrueStudio,Hitop等。 http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/bHhHdC8.lVah69B4Qj0UX6KpcXwBi*gYezds2sQVI5g!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=LALYAAAAAAAFANU!&su=0188798401&sce=0-12-12&rf=2-9
   http://a3.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/L8ICNer7ow1YUdKhspHj9UBrCpU2UM7XDOBitLQ*c8k!/b/dAoAAAAAAAAA&ek=1&kp=1&pt=0&bo=KgIBAQAAAAAFAAs!&su=093384449&sce=0-12-12&rf=2-92.2 基本的技术资料的准备。    2.2.1、ST MCU选型手册。这个可以从网上或代理商等地获得ST MCU选型手册,或者在ST官网上直接进行在线选型。当然选型的最终敲定,最好跟代理商确认下相关价格和交货等问题。    2.2.2、芯片的数据手册,即datasheet。ST MCU的数据手册并不是一个型对应一个手册,而是一系列功能接近,但管脚和FLASH容量有些差异的型号共用一个数据手册。 http://a4.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/iQPCCsXuyfNrKK.aw*2wQeftLV2tTYzsRSInjO7tfNM!/b/dGMAAAAAAAAA&ek=1&kp=1&pt=0&bo=*wHOAAAAAAAFABM!&su=0119975681&sce=0-12-12&rf=2-9 http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/yVndA.gUX05QBRBT7cTQ3aQa2SPCZY5Y1cfl6hOIfFI!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=7gBmAAAAAAAFAKs!&su=058759137&sce=0-12-12&rf=2-9http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/v3BBfvP69zeJqj.KdEozp5VIHsASpxlgYWluUvkkoN8!/b/dAgAAAAAAAAA&ek=1&kp=1&pt=0&bo=AwFxAAAAAAAFAFA!&su=0251102481&sce=0-12-12&rf=2-9 数据手册只是就芯片基本的内部资源、管脚定义及相关电性、物理参数给出明确细致的描述。但关于内部功能块的工作原理及相关寄存器的描述是放在另外一个手册里,即该系列芯片的参考手册。 2.2.3、芯片的参考手册,也就是平常常说的寄存器编程手册。该手册一般都非常庞大,动则几百甚至上千页。它对MCU芯片的框架和各个功能模块的工作原理及相关寄存器的使用都有详尽的描述。每个STM32系列对应一套手册,并给予不同编号。比方F1系列的是RM0008,F2系列的是RM0033。一般来讲,我们是用什么看什么比较现实。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/5ooqBTmSPPJR.lX5B7eLu523kzIAHTD6ERTQT1xGtKA!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=KgJyAAAAAAAFAHk!&su=0233069921&sce=0-12-12&rf=2-9
2.2.4、Flash编程手册。这个手册主要是针对对芯片内部FLASH存储器架构、FLASH编程【FLASH写、擦除等】、OPTION编程的详细描述。如果不涉及这些的话,可以不看。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/7QYFZutSH7CMwLDyNM*60xjUQ2Celhd3HY6BmgvflI0!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=pAGjAAAAAAAFACU!&su=0149300449&sce=0-12-12&rf=2-9 2.2.5、内核编程手册。该手册主要是对所选ST MCU的内核框架及指令系统、中断应用做了比较详细的介绍。有需要时可以查看。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/pTxUJnEZ9XBQJy87BfT.J9W1FqkySusINETCKmLvAv8!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=kwGgAAAAAAAFABE!&su=075452529&sce=0-12-12&rf=2-9 2.2.6、勘误手册。每个芯片系列往往都配有勘误手册,这个手册对开发人员很重要。在ST官网叫errata sheet.开发过程中有时遇到的问题,或许就在勘误表中写得清清楚楚。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/uMXjAiJthnpKLnilnpOfUU*eRIfyy.c5sD*aPj9h4.g!/b/dAgAAAAAAAAA&ek=1&kp=1&pt=0&bo=igF8AAAAAAAFANQ!&su=0179073313&sce=0-12-12&rf=2-9 2.2.7、各类应用笔记和技术话题。即官方网站里的application notes和Technical Notes & Articles。类似的这些文章往往对我们的开发或许有很大帮助,可以有选择性地下载查看。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/Yi7QQ4mzgJdU6YHLgZrk6bRWfAO1n*4zo0*Y6y8ytX4!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=1AF8AAAAAAAFAIo!&su=0227799505&sce=0-12-12&rf=2-9 2.2.8、软件参考代码的准备。目前ST主要提供2种库,一个是针对各个STM32系列的标准外设库,即传统老库。该库包含各个外设应用的相关驱动函数和基于各类外设应用的项目工程模板。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/3Q3p4dfI8OK8hfwRuVd3cGmgDVOFPUj1zbGAiwYPV60!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=uAGqAAAAAAAFADA!&su=016463729&sce=0-12-12&rf=2-9    另外一种固件代码库,就是基于STM32CubeMx工具的CUBE固件库。也是每个系列都有一套Cube库,相比上面的标准外设库,它还集成了其它中间件应用驱动函数库及例程。   http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/BBfcumd7xrh7ucch3bLD8KQSKJKK40CSbpusb1RkHkc!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=cQHzAAAAAAAFAKA!&su=057151345&sce=0-12-12&rf=2-9 http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/7mcFSucP2o8TG28ATMNEs2MUn0rnt5LMfThCu6v8u70!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=4gFBAQAAAAAFAIA!&su=0121399073&sce=0-12-12&rf=2-9
上面提到的各类手册或开发固件包都可以去ST官网www.st.com/mcu或者www.stmcu.com.cn进行下载,建议尽量下载最新版本的。STM32芯片新系列、新型号推出得极为频繁,资料版本更新及完善也是情理之中。如果跟代理商有联系的话,可以跟代理商的FAE做些沟通或了解,让他们给予协助。

三、ST提供的下载工具这里聊下关于STM32系列MCU应用开发的烧录下载工具。除了上面提到的IDE环境具备些基本的下载功能外,再提下ST官方提供的几个烧录软件工具。下面提到的几个软件工具包,在STM32 Player的QQ群共享里也有,群号是188428785.3.1STM32 Stlink Utility    利用STLINK和该软件工具可以对STM32芯片进行烧录、加密、取消加密等操作。【STM32部分系列芯片有LEVEL 2加密,如果做了此级加密,该芯片不能再用它取消读保户。】 http://a2.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/TOxVdcTE2VnALZAU1CxT1r.JfusorF2*LgI6RsiZheA!/b/dAkAAAAAAAAA&ek=1&kp=1&pt=0&bo=AQLuAAAAAAAFAM4!&su=0161124833&sce=0-12-12&rf=2-9
3.2STVP 【ST visual programmer】 借助于STLINK,利用该软件工具可以对芯片进行烧录下载、擦写、读写保护配置等。该工具对STM8和STM32都适用。http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/rpHG87lxet3Mol6Vz0yc6vubGnhAPEFMoTL78WrSZE4!/b/dFQAAAAAAAAA&ek=1&kp=1&pt=0&bo=HAJbAQAAAAAFAGc!&su=0225243889&sce=0-12-12&rf=2-9
3.3Flash loader demonstrator利用UART口对芯片代码进行更新升级,对芯片进行擦写、读写保护等操作。该工具对STM8和STM32都适用,当然结合到某些型号要具体参看手册。 http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/sAqWfiTHyQST3Wmedm.Q34XPQG06clOl2qmLq**WsKs!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=.wFhAQAAAAAFALk!&su=0133951921&sce=0-12-12&rf=2-9    http://a3.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/Yxaz*fxD6UnR3Zr7j4Ewj8ekTV3IRu0UuU17kHVdjSc!/b/dAoAAAAAAAAA&ek=1&kp=1&pt=0&bo=6gGCAQAAAAAFAEs!&su=0133231521&sce=0-12-12&rf=2-9
3.4ST DFU 工具 借助该工具软件和USB接口对芯片代码进行更新升级,对芯片进行擦写、读写保护等操作。不过这不是所有的STM32芯片都支持这个模式,具体要参考各系列芯片的参考手册。http://a3.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/RKbte2l70XprpbfzoiEP.1LnEOGC.sFL2OgHyn79dTA!/b/dB4AAAAAAAAA&ek=1&kp=1&pt=0&bo=lgGgAAAAAAAFABQ!&su=0233625345&sce=0-12-12&rf=2-9 http://a4.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/S3rFCYP3r6J4ni7EeBcLEXuVxIF5gS7YLvoW4xPb0NY!/b/dFMAAAAAAAAA&ek=1&kp=1&pt=0&bo=kwHjAAAAAAAFAFI!&su=0215426657&sce=0-12-12&rf=2-9 http://a1.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/SSzOnKGMAyDx8EobY0d7B2GUdTdHlt5nL5MZ1QnMXrQ!/b/dGABAAAAAAAA&ek=1&kp=1&pt=0&bo=lwFuAQAAAAAFANo!&su=0229446929&sce=0-12-12&rf=2-9
小结下,上面就开发前期IDE环境的准备、基本技术资料的准备、下载工具的准备三个方面做了个整体的大致介绍,希望尽可能地帮到刚接触或准备了解STM32芯片应用开发的学生或工程师。常言道,磨刀不误砍柴工,这些前期准备工作对在开发过程中少走弯路、提升效率方面都不无裨益。**********************************************其它相关ST MCU应用话题贴,可以扫描下方微信公众号加以关注,查看历史消息来选择阅读。如果觉得本文有用,欢迎与他人分享之。            http://a3.qpic.cn/psb?/c256ba82-4e9a-402f-8be9-33684e648195/g*dUwmvYpbUzu8SyKpu3QtUiucPRPtRakwDdt0JjiB0!/b/dAoAAAAAAAAA&ek=1&kp=1&pt=0&bo=4gDcAAAAAAAFAB0!&su=0209044065&sce=0-12-12&rf=2-9






页: [1]
查看完整版本: [资源共享]STM32应用开发所需的基本资料及工具