STM32F4_引领入门
Ⅰ、概述
该文写给那些想学ST芯片开发(或初级学习)的朋友,文章着重细节,或许有点简单。
笔者想告诉那些刚开始学习ST的朋友,不管你使用哪一个系列(F0、F1、F2),哪一种型号芯片,其实学习的方法和原理都是差不多的。或许不同系列,不同型号的芯片,它们之间确实存在一定的差异,但万变不离其宗,设计芯片的厂家都是按照常理(而且是人们习惯性的思维)来设计芯片,及其开发原理。
笔者在这里告诉大家吧,ST的芯片不管是硬件(引脚),还是软件(寄存器、库等)它们的兼容性都是很好的,有可能不同系列,不同型号的芯片,硬件换了,软件不换,可以达到同样的效果(笔者已经尝试过的,如:STM32F205VC和STM32F417VE,除了明显一点的速度有区别外,软硬件可以兼容,不行的朋友可以试试,看看手册引脚,寄存器地址等基本上一样)。有很多芯片都是类似的,不信的朋友可以验证一下。
好了,回归到今天的主题,关于STM32F4系列芯片开发,更多详情内容,请往下看。
本着免费分享的原则,方便大家手机学习知识,定期在微信平台分享技术知识。如果你觉得分享的内容对你有用,又想了解更多相关的文章,请用微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,将有更多精彩内容等着你。

Ⅱ、准备开发资源
1.开发工具Keil
开发ST芯片的工具有很多,官方也提供有(STVP),笔者这里不评论哪一个工具好,哪一个工具不好,只想说,各有各的好,你使用哪一个看你自己选择。笔者习惯性使用Keil(MDK-ARM),因此,推荐的也是Keil。
关于Keil(MDK-ARM)包含支持包的下载与安装,我已经在之前文章中讲解过,不同的可以前往我博客查看如何下载与安装。
MDK-ARM下载与安装:
http://www.cnblogs.com/strongerHuang/p/5528602.html
前一段时间我还总结了关于Keil相关的使用方法,里面基本上把关于MDK-ARM的大部分功能都总结了。
Keil使用方法(汇总):
http://blog.csdn.net/ybhuangfugui/article/details/51647893
2.F4文档资料
在上一篇文章中我已经描述过“如何查找STM32开发资料”,我的建议是进入ST官网,我这里也是提倡进入官网查找资料。
对于初学者,有两个文档资料是必备的:数据手册和参考手册。数据手册用于查看你所使用的芯片有哪些资源,引脚对应的功能等。参考手册用于开发、调试时查看相关的一些寄存器配置,如何使用相关功能等。
当然,上面说的两个是关于整个芯片所有信息,开发的时候也有部分相关资料,如:应用手册、勘误手册、编程手册等,讲解了一些细节的东西,不嫌弃麻烦的朋友,建议参考这些文档。
ST官网F4文档资料:
笔者360云盘:
https://yunpan.cn/cR2pxqF5x2d9c 访问密码 53e7
3.标准外设库
关于STM32的开发大致分:寄存器开发、标准外设库、STM32CubeMX配置等。由于STM32的寄存器太多了(不像51、430等寄存器很少),所以不建议初学者使用寄存器开发。STM32CubeMX配置代码的工具功能确实很强大了,但对于想要理解底层驱动开发的人来说也是不适合的。因此,笔者建议初学者使用标准外设库开发STM32,原因很简单就是兼顾了以上说的两点。
ST官网今年更新了网站,将很多资源分类整理在一个网页,方便用户下载。ST所有的标准外设库整理在一个下载网页,可以前往官网下载最新的标准外设库。

标准外设库官网下载地址(需注册用户):
笔者360网盘下载地址(定期更新):
https://yunpan.cn/cReDTUbI7ZYwc 访问密码 4e0a
4.其他
STM32 ST-LINK Utility:这个工具是ST官方的,主要用于量产下载使用,这里对于初学者也是需要了解的。在没有读保护的情况下可以查看内部FLASH数据。
官网下载(需注册用户):
笔者360网盘下载地址(定期更新):
https://yunpan.cn/cRezHui3RVRdd 访问密码 1abc
Ⅲ、新建工程
我们把上一节的准备工作做好之后就可以进入开发了。首先是提取标准外设库的有用源代码文件(主要是解压后的Libraries里面的文件),这个可根据自己的理解和思路来整理和分类,笔者将会提供整理好的文件供大家下载参考。
关于如何新建软件工程,笔者也在前面整理过一篇文章,供大家参考。
http://www.cnblogs.com/strongerHuang/p/5532880.html
笔者提供一个新建好了的软件工程实例,比较简单也是比较实用的供大家下载参考:
https://yunpan.cn/cRepWDShSK4yc 访问密码 65b1
Ⅳ、说明
关于STM32的开发,软件兼容性是很好的,不要觉得你的芯片和我总结的实例有差异就不看了,其实是错误的认识,特别是同一个系列的芯片基本上程序都兼容,也就是可以互相使用。
以上总结仅供参考,若有不对之处,敬请谅解。
Ⅴ、最后
关注微信,回复“更多内容”,将获得更多内容(如:UCOS实例等,不断更新中......)。
如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。
STM32F4_引领入门的更多相关文章
- 推荐20个很有帮助的 Web 前端开发教程
在平常的搜索中,我碰到过很多有趣的信息,应用程序和文档,我把它们整理在下面这个列表.这是收藏的遇到的有用内容的一个伟大的方式,可以在你需要的时候方便查阅.相信你会在这个列表中发现对你很有用的资料. 您 ...
- 设计: ListView 接口,and the missing read-only interfaces in java collection framework
Java的集合框架以其成功易用的设计征服了很多人(包括我),并且教科书式的诠释了泛型的应用方式. 我也是被 Joshua Bloch 的书引领入门,从中得益良多.我当然不会认为自己在设计上比他懂得更多 ...
- 推荐20个很有帮助的web前端开发教程
1. CSS Vocabulary 一个伟大的指向和点击的小应用程序,让你加快速度掌握 CSS 语法的各个不同部分,学习各个属性的正确的名称. 2. Liquidapsive 一个简单的信息化布局,通 ...
- 推荐20个非常有帮助的web前端开发教程
1. CSS Vocabulary 一个伟大的指向和点击的小应用程序,让你加高速度掌握 CSS 语法的各个不同部分,学习各个属性的正确的名称. 2. Liquidapsive 一个简单的信息化布局.通 ...
- 一个故事看懂HTTPS
我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习. 为了不让别人看到浏览记录,主人选择了"无痕模式". 但网络中总是有很多坏人,他们通过抓包截获我和服务器的通信,主人干了什 ...
- Elasticsearch 教程--入门
1.1 初识 Elasticsearch 是一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎,可以说 Lucene 是当今最先进,最高效的全功能开源搜索引擎框架. 但是 L ...
- Web前端小白入门指迷
前注:这篇文章首发于我自己创办的服务于校园的技术分享 [西邮 Upper -- 004]Web前端小白入门指迷,写得很用心也就发在这里. 大前端之旅 大前端有很多种,Shell 前端,客户端前端,Ap ...
- 01.Hibernate入门
前言:本文用一个简单的Hibernate应用程序例子来引领初学者入门,让初学者对Hibernate的使用有一个大致的认识.本文例子使用了MySQL数据库.Maven管理工具.Eclipse开发工具,创 ...
- Qt入门之基础篇(1):Qt4及Qt5的下载与安装
转载请注明出处:CN_Simo. 导语: Qt是一个跨平台的C++图形界面应用程序框架.它提供给开发者建立图形用户界面所需的功能,广泛用于开发GUI程序,也可用于开发非GUI程序.Qt很容易扩展,并且 ...
随机推荐
- How to Modify Public Network Information including VIP in Oracle Clusterware (文档 ID 276434.1)
APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.3 to 12.1.0.2 [Release 11.2 to 12. ...
- 《Code Complete》ch.7 高质量的子程序
WHAT? 子程序(routines)是为实现一个特定目的而编写的可被调用的方法或过程.在C++中是函数(function),在Java中是方法(method),在VB中是函数过程(function ...
- android 如何设置背景的透明度
半透明<Button android:background="#e0000000" ... />透明<Button android:background=&quo ...
- IIS7.0设置404错误页,返回500状态码
一般在II6下,设置自定义404错误页时,只需要在错误页中选择自定义的页面,做自己的404页面即可.但是在IIS7.0及以上时,设置完404错误页后,会发现状态码返回的是500,并且可能会引起页面乱码 ...
- html5标签css3的常用样式
<meta name=''> name:有如下6个值:application-name:文档名或者应用名,整个文档只能包含一个值.author:文档作者description:文档描述ge ...
- C/C++笔试经典程序(二)
1.下面5个函数哪个能够成功进行两个数的交换? swap1传的是值的副本,在函数体内被修改了形参p.q(实际参数a.b的一个拷贝),p.q的值确实交换了,但是它们是局部变量,不会影响到主函数中的a和b ...
- 举例说明划分子网,路由器IP地址
划分子网的方法是从网络的主机号借用若干位作为子网号,主机号相应地减少了同样的位数.在划分子网前,IP地址是两级结构的:网络号,主机号. 划分子网后,两级IP地址在本单位内部就变为三级IP地址:网络号, ...
- Win2D 官方文章系列翻译 - 处理设备丢失
本文为个人博客备份文章,原文地址: http://validvoid.net/win2d-handling-device-lost/ “设备丢失”是指 GPU 设备失效无法继续进行渲染的情况.GPU ...
- 翻译的技巧(The Technique of Translation)——前言
曰:你要发文章才能毕业! 答:谨遵圣命-- 缘起 研三了,要找工作了,要离开学校了,又要像浮萍般飘荡在世上了,还是学校好呀!本以为写个毕业论文就可以了,谁知老板幽幽地说写篇文章发了吧.我竟无言以对.不 ...
- ApplePay
ApplePay要在项目有里配置,,配置好项目之后,就剩下编码了,做ApplePay首先要检查设备是否支持ApplePay,支持 ApplePay的设备在 iPhone6及以后, PKPayment ...