开篇之前,我想问大家一个问题,为什么要学习 32 位单片机

 

如果您上来问,如何系统地入门学习 32 位单片机?这本身或许是一个问题。

 

为了学 arm32 位单片机学习?

 

 

为什么这么说呢?假如你之前接触过 51 单片机,学过 C 语言,那么 arm32 单片机并不需要刻意去学习。到那个时候,你会考虑的问题是,我可以用 arm32 能实现什么。在 51 单片机无法满足项目设计的时候,或者是因为 51 单片机频率太低,管脚太少、无法满足外设 IO,功耗太大,又或者是功能太少,而你恰好想使用 SPI、I2C、ADC、DMA。

 

当你需要使用 STM32 某些功能,而 51 实现不了的时候, 那 STM32 自然不需要学习,你会直接去寻找 STM32 某方面的使用方法。比如要用 spi 协议的网卡、要使用串口通信、要使用 rtos 等等。


学习 arm32 位单片机必经之路

 

 

现在,我们假定大家已经对单片机有一定的了解,如果没有的话,建议先把 51 单片机的基础学好。嗯,目前单片机市场上使用的基本是 C 语言,必须要掌握好。其次,就是要掌握好单片机案例的各种芯片使用,不管多么复杂的系统,单片机基本结构也分为“内核+外设”。控制外设的途径就是特殊功能寄存器。单片机外设不多,主要可分为三大块:中断系统、定时 / 计数器和串行接口。并把控制这些外设的特殊功能寄存器弄明白。

 

学习 arm32 跟学习 51 都是一样的,平时可以多查阅相关技术书籍、文档手册,以获取最基本的知识。ST 官方在这方面做得很好了,推荐学习它的《STM32F103xxx 参考手册》《STM32 固件库使用手册》两个 32 位学习文档。

 

前者重点学习前几章内容,存储器和总线架构、电源控制、备份寄存器、复位和时钟控制,通用和复用功能 I/O,中断和时间等等一定要花时间阅读,后面讲解具体的功能模块设计,在后续设计用到的时候,可以再自行查阅。后者则主要学习固件函数库的使用方法,主要为了简化编程,我们只需学会调用即可。比如文档和库规范中的命名规则,编码规则,固件架构和使用步骤,模块函数等。建议对 GPIO 库函数、中断部分库函数、复位和时钟设置的库函数要比较熟悉,因为平时经常会用到。

 

相信学习了解 51 单片机,掌握 arm32 单片机相关基础知识后,你就可以尝试自己开始动手做项目了。


给自己设定一个 arm32 学习计划

很多时候所谓“入门”,通常指你基本理解,并能掌握一些常用 32 单片机外设使用,而像真正了解掌握一款处理器,你最好还是要按照实际能力,根据自己情况规划一套学习方法。

 

有的人学习两周,就可以进行简单独立的 arm32 开发,有些人则需要 1 个月、2 月甚至更长的时间,因人而异。建议你每天利用业余时间学习,不管时间是否充裕,给自己做一个 arm32 学习计划。

 

这里我列出一些不算建议的经验,以过往自己的学习心得,供大家参考下。

 

 

步骤一,学习安装 arm32 单片机开发套件,及相关开发工具 KEIL。

 

步骤二,挑选部分 32 单片机例程,比如定时器,下载到开发板上,观察两个 LED 灯的闪烁情况。这部分的操作,参考课程配套的视频进行。实际上,以上两个步骤,是为了熟悉要使用的工具软件而已。属于找感觉的阶段。

 

步骤三,查阅单片机开发的学习文档,文档可以到 ST 官方,或者学习单片机开发板,都会有提供相应的资料。

 

步骤四,开始查看例程的编写,看看例程是如何写的,自己可否修改下例程,达到自己想要的效果呢?

 

步骤五,在裸机上测试、跑程序,或者移植到单片机平台上运行。比如:RT-Thread 实时系统,是否需要试一下?恭喜你,至此,你已经可以自如进行独立的开发了。

 

最后一步,给自己一个目标(项目),把它实现出来!

 

提供的一个学习 arm32 开发的思路,仅供大家参考哦!上述列出的关键步骤,也是希望能帮助大家快速入门 32 位单片机。