历史上的今天
返回首页

历史上的今天

今天是:2026年01月11日(星期日)

2023年01月11日 | 零基础入门stm32的一些学习方法

2023-01-11 来源:zhihu

  1.首先我们先看看与STM32相关的文档

  我们假定大家已经对STM32的书籍或者文档有一定的理解。如不理解,请立即阅读STM32的文档,以获取最基本的知识点。

  如果你手上拥有ST官方主推的STM32神舟系列的板子,那么光盘都会配好这些文档,STM32的学习与ARM9的学习有一个很大的区别。ARM9的学习

  一般是需要购买书籍的。比如三星的S3C2440,官方的文档都是英文的,大部分工程师只能去看国内出版的书籍。英文好的同学,请不要以为

  你很牛,可以只看英文文档。毕竟你是中国人,你最熟悉的,理解最好的还是中文。看英文的速度还是比看中文慢一些,我们要的是最短的时

  间,而不是追求短时间内记住所有细节。当然,如果是一篇论文,建议看英文原版还是有好处的。

  STM32处理器进入国内市场时候,ST官方(或者第三方)的推广工作做的非常好。翻译了大量的英文文档,迎合了国内的

  很多工程师的思维。神舟系列的开发板就是迎合这种中国化,本土化,方便学习和使用;所以现在大部分STM32F103xxx的用户datasheet都有

  中文版,例子也很齐全,因此可以不用去购买书籍,看电子档即可。

  学习的时候,关注两个比较重要的文档:《STM32F103xxx参考手册》,《STM32固件库使用手册》。

  该网址,是针对有充足的时间、精力的同学,建议去下载需要查阅的文档,以获取更多信息。

  阅读《STM32F103xxx参考手册》,一定要注意,不需要全部阅读——没有时间的。建议选读,但是前几章必读。存储器

  和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能I/O,中断和时间等等前几章一定要花时间阅读。

  后面章节,讲述的是具体的功能模块设计。如果我们用到哪个模块,就可以去阅读哪个模块。比如在使用AD的时候,就

  需要去阅读第10章ADC。其他不举例。相信每个初学者都有自己的研究方向和判断。

  阅读《STM32固件库使用手册》,主要是为了简化编程。STM32给我们提供了一个非常好的固件函数库,我们只要去调用

  即可。当然,我们也可以不去碰这些固件库——传说使用它会使得代码效率变低,是有道理的。网络上也出现了很多网友自己写的代码,没有

  使用带固件库函数。如何取舍,在于您的选择。

  这里我主要强调的是,阅读《STM32固件库使用手册》的时候,前面几章也是必须阅读的。比如第一章文档和库规范中

  的命名规则,编码规则,这些都是需要注意的。第二章是最关键的,希望大家熟读。第二章描述了固件库的架构,我们如何去使用固件库的步

  骤等。有了第二章的基础,我们就可以借助固件库写出自己的代码了。第四章开始之后,就可以根据大家的需要来阅读。实际上,后续的章节

  ,都是描述某个模块有什么什么函数,每个函数如何使用等。

  关于后面的章节,建议对GPIO库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到

  。

  以上提到的这两个文档,已经足够您看的了,呵呵。希望您能从中获取大量的STM32基础知识。

  2.设定一个不错的两周入门计划

  (1)这里所谓的“入门”,指的是能理解并掌握一些常用的STM32外设,真正想掌握一款处理器,两周根本说明不了什么问题。只能说,你已

  经有所了解了。但是,这对我们初学者来说已经足够了。

  (2)这里所谓的“两周”,根据每个人的时间安排不同而不同。

  如果您每天有充足的时间学习,那么可以规定自己尽快地能独立地进行简单的STM32开发。

  如果您每天只有业余时间来学习STM32,建议根据您的具体情况安排时间。毕竟计划时间如果安排太紧,反而收不到良好的效果

  ,只能进入恶性循环,这是我们要避免的。

  但是建议,不管您有无充足的时间,都必须给自己做一个计划!!

  我这里列出一个思路,仅供参考。

  步骤一,安装完STM32学习的软件,比如J-Link、Keil for ARM(MDK)、ISP(如果需要从串口下载的话)。这些软件安装的详细步骤,可以

  参考我们推出的相应教程进行。

  步骤二,挑选部分例程的HEX,比如LED灯的例程HEX文件,下载到芯达STM32开发板中,观察两个LED灯的闪烁情况。这部分的操作,可以参考

  我们推出的相应的教程进行。

  实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。属于找感觉的阶段。其实我们还没开始STM32的学习呢!

  步骤三,准备几个常用的文档,比如《STM32的用户手册》,《STM32固件库使用手册》等文档。用于平时查阅。这些文档,在光盘中的芯片手

  册目录中均可找到。

  步骤四,开始查看例程的编写,看看例程是如何写的,自己可否修改下例程,达到自己想要的效果呢?芯达STM32开发板的光盘中为大家提供

  了丰富的例程代码,可以参考。您一定可以修改出更精彩的例程!

  步骤五,Ucos-II的移植,是否需要试一下?

  恭喜你,至此,你已经可以自如进行独立的开发了。最后一步,给自己一个目标(项目),把它实现出来!

  再次强调,以上只是一个学习STM32的思路,供大家参考。下面列出了前面关键的步骤,希望大家能尽快入门。后续的每个模块

  的编程,请参考神舟I号(103RBT),神舟II号(103vct),神舟III号(103zet),神舟IV号(103vct)中任何一款的入门手册,官方网址

  armjishu.com上有下载的,大家可以参考参考。

  第1步:熟悉调试软件

  对初学者来说,我们至少需要安装两个软件:J-Link驱动软件、MDK(就是原来的Keil)软件。这两个软件在安装软件的过程可以查

  看神舟开发板用户手册,这里不再重复,大家可以参考我们推出的教程《如何安装J-Link驱动软件》以及《如何安装MDK(Keil)软件》。如何

  验证自己已经熟悉调试软件的操作了呢?很简单,神舟STM32开发板光盘里附带了很多HEX格式的文件,可以选择一些HEX文件,来观察运行结

  果。比如LED灯的例程HEX文件,下载到神舟STM32开发板中,观察两个LED灯的闪烁情况。灯在闪烁,就说明你刚才的操作已经把HEX文件烧写

  到闪存中了。

  该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。

  第2步:GPIO编程

  这是第一次接触固件库的编程,一定要硬着头皮去了解固件库。建议大家尽量去用固件库。而不是避开固件库自己写代码—

  —这样只能在学习中才会发生。实际的项目中,代码成百上千个,如何一个一个自己写?调用固件库中的函数来完成,才是王者之道。

  GPIO本身的编程实际上很简单:

  1、设置GPIO口的引脚为输入或者输出模式。我们在进行点灯代码的时候,一般设置为推挽输出模式。

  2、操作寄存器,往寄存器里置1或者清零操作——这个步骤,固件库已经提供了专门的GPIO_SetBits函数和GPIO_ResetBits函数,我们只要去

  调用即可实现对IO口的置1和清零。

  3、实现多种花样的LED闪动,使得自己熟悉GPIO的编程过程。

  该步骤要达到的目标:熟悉调试软件,如烧写HEX出现问题,可简单判别问题所在,并独立解决。

  第3步:开始全新的STM32深入研究

  经过以上调试软件的熟悉和GPIO口的编程调试后,相信您已经对STM32有一定的了解。至少知道如何利用STM32的固件库去写一

  个代码。OK,下面我们将开始全新的STM32深入研究。在这个阶段,将要接触到串口编程、TFT液晶屏驱动编程、定时器编程、串行外设接口

  SPI编程、存储器编程、SD卡与文件系统移植、USB读写、UCOS移植等,有精力还可以研究其他外设。


推荐阅读

史海拾趣

洲光源(Chau Light)公司的发展小趣事

在洲光源公司的发展历程中,品质一直是其核心竞争力之一。公司始终坚持严格的质量控制标准,从原材料采购到产品生产、检测的每一个环节都严格把关。同时,洲光源还注重品牌塑造和市场推广,通过参加各种行业展会、举办技术交流会等方式,不断提升品牌知名度和影响力。这些努力使得洲光源的红外LED产品逐渐在市场上脱颖而出,成为众多客户的首选品牌。

ELESTA GmbH公司的发展小趣事

2019年,ELESTA GmbH荣获GEO全球卓越奖,这是对公司多年来在精益生产和生态环保方面卓越表现的肯定。该奖项的获得不仅提升了ELESTA的品牌形象和知名度,也进一步增强了公司在全球电子行业中的竞争力和影响力。

以上五个故事涵盖了ELESTA GmbH公司从创立到发展的关键阶段和里程碑事件,展现了公司在电子行业中不断进取、创新发展的历程。

酷宅(Coolkit)公司的发展小趣事

酷宅科技始终将技术创新作为公司发展的核心驱动力。公司不断投入研发资源,推动物联网、云计算、大数据等前沿技术的研发和应用。通过技术创新,酷宅科技不仅提高了产品的智能化水平,还降低了生产成本,提高了生产效率。同时,公司还积极与高校、科研机构等合作,共同开展技术攻关和人才培养工作,为公司的长期发展提供坚实的技术支持。

芯旺微电子(ChipON)公司的发展小趣事

随着市场需求的不断变化和技术的不断进步,芯旺微电子不断拓展产品线,覆盖了从8位到32位不同性能的MCU产品。同时,公司还积极研发DSP、数模混合SOC等多元化产品,以满足不同领域的需求。这些产品的推出不仅丰富了芯旺微电子的产品线,也进一步提升了其在电子行业中的竞争力。

Aimtec公司的发展小趣事

作为一家注重品质的企业,Aimtec公司深知质量管理体系的重要性。因此,公司投入大量资源,建立了完善的质量管理体系,并通过了ISO 9001:2015等国际质量管理体系认证。这些认证不仅证明了Aimtec公司在质量管理方面的实力,也为公司的业务拓展提供了有力的保障。通过持续的质量改进和创新,Aimtec的产品在行业中赢得了良好的口碑。

E-tec Interconnect Ltd公司的发展小趣事

为了满足全球客户的需求,E-tec开始在全球范围内进行布局。他们在亚洲、欧洲和北美等地设立了生产基地和研发中心,实现了全球范围内的生产和销售。同时,E-tec还注重供应链的整合和优化,与多家原材料供应商建立了长期稳定的合作关系,确保原材料的稳定供应和成本控制。

问答坊 | AI 解惑

实验板制作6F3胆牛耳机放大器

关注已久的电子管多用途板终于和大家见面了。本站将推出一系列洞洞板作品,已便大家交流。首先推出的一款作品是6F3胆牛耳放,这款作品大家看了一定很熟悉,他的电路和本站前期的PCL86电路完全相同,只是用管不同,电路元件参数稍有不同。由于在洞 ...…

查看全部问答>

"手榴弹"式灭火器

这种类似于“手榴弹”一样的灭火器不像传统的灭火器那样需要人工喷射,只要扔进火堆里,一见到明火,自身就可以引爆灭火。这样一个4升的灭火器有效范围能达到七、八个平方米左右,相当于5至6个3升钢瓶灭火器的威力,而且即使是没有人在现场,事先设 ...…

查看全部问答>

GPRS数据传输问题!!

最近要做一个设计,心电数据采集后的远程发送部分,要求通过GPRS传输到计算机,老师说用手机或gprs模块都行,但我是一菜鸟,不懂怎麽用手机通过gprs远程传输数据到计算机?网上说的我都不明啊,现老师降低要就,只要我能把数据包通过gprs送到计算机 ...…

查看全部问答>

wince +s3c2440 按键音和屏幕点击音 时有时无

wince +s3c2440 按键音和屏幕点击音 时有时无 有时是第一次有,第二次没有,第三次又有.......…

查看全部问答>

stm32f103开发板

[ 本帖最后由 qingfenglinxia 于 2012-5-27 10:03 编辑 ]…

查看全部问答>

TI铅酸蓄电池均衡管理的芯片么?

德州仪器公司有对铅酸蓄电池进行管理的芯片么?是那种?知道的介绍一下…

查看全部问答>

急求VCA822中文资料

急求VCA822中文资料…

查看全部问答>

关于电子设计的书籍求推荐

    最近要做一个擦地机器人,但我是一个菜鸟,希望 大家能推荐一些关于电子设计的书籍,最好是有传感器模块,电源模块,避障模块,驱动模块和路径规划等相关内容讨论的书籍,唉…感觉这些好高级希望不要鄙视我。急需大家帮助,谢谢…

查看全部问答>

[TI首届低功耗设计大赛] fr5969读取串口MPU6050数据

板子好久之前就收到了,因为期中考试和社团活动把它放了好久,有点对不起eeworld了,根据我的项目内容要用到陀螺仪和加速度传感器,这里我选用通信方式比较简单的串口通信的MPU6050,先来晒下板子和传感模块的图 然后下面晒晒数据,用的是低频3276 ...…

查看全部问答>