如何自学stm32(如何自学stm32单片机)

网友提问:

如何自学stm32?

优质回答:

STM32单片机的性价比和功能很丰富的,应用广泛,学好STM32对就业很有帮助,前景很不错。给初学者提出几点建议。

入手一块适合的开发板

学习单片机就是要学习单片机外设电路的设计、单片机程序的编写以及电子产品开发的流程。而开发板是一个不错的选择,将常用的外设电路都集成到开发板上,方便了学习,厂家还会提供相应的例程和学习资料,省去了自己找资料的过程。

学习硬件电路的设计

拿到开发板首先研究一下硬件电路,对每一个功能模块的外设电路分析一下,在分析的过程中要理解器件的使用,控制方式,如果你做方案会用哪些元器件来实现这个功能。在学习之处可以看的不用太深,但是一定要知道控制原理,后面编程要知道。

学习C语言程序的设计

在初学阶段,要读懂厂家提供的例程,学习单片机的寄存器是什么,学习寄存器是如何工作,如何配置的,要读懂例程是如何通过程序控制硬件的,比如和输出高电平点亮/熄灭LED,如何实现IIC通讯等。程序的实现方式因人而异,所以要抛开例程,自己去编程。

学习产品的设计流程

学习是途径,会做做产品才是最终目的。要懂得如何提出需求,把需求转化成技术方案,要考虑如何选型,如何控制成本,如何提高产品的稳定性等。所以要多多的参与项目、参与产品的研发。

最后必须要说的是,学习单片机一定不要整天抱着书看,而是要多动手。

以上就是这个问题的回答,感谢留言、评论、转发。

更多精彩内容请关注本头条号:玩转嵌入式。感谢大家。

其他网友回答

首先你要有一个开发板,如果你是刚入门单片机领域的,建议从视频开始学习。书籍方面最起码要有一本 C 语言书籍,方便查阅 C 语言知识点。

刚开始学习的时候注意以视频为主,反复看都看不懂的知识点可以看书,还是不懂的话就要上网搜寻答案了(当然如果身边有前辈的话也可以请教,这是最好、最直接的方式)。多方面结合学习效果更好。

说说我的学习经历吧。我是大一的时候在实验室接触到单片机的,目前已经毕业了,学习时间也不短了。一直以来在别人学习各种编程语言的时候,我都始终坚持只学 C 语言,只用 C 语言,虽然后期为了更好的理解 C 语言学了点汇编知识,但也只是皮毛罢了,所以我最擅长的还是 C 语言。

C 语言学习最重要的是多练,多看。多练就是需要通过一些小的项目去运用你所学的知识,这样你才能更深刻的理解。而对于 C 语言语法问题,这种是最简单和基础的错误,既不要太重视也别轻视,平常心对待就行了,因为你写的语法错误会有编译器帮你检查出来的,一旦出现警告和错误,一定要看输出信息,通过信息来判读你的错误原因。一定要注意看懂英文,理解它表达的中文意思,别说自己英文水平太烂,看不懂,多看几次,多用Google翻译一下就记住了,熟能生巧。如果说你知道了表达的错误意思,但还是不知道怎么解决问题,那么就把这条出错信息复制一下,然后粘贴到网上搜一下就知道了,你要知道,你碰到的绝大多数问题别人都可能碰到过,也可能解决了。所以要充分利用网上的资源学习。多看,就是要多看别人的代码,这样才能发现自己不足的地方,并且可以学习别人优秀的地方。STM32学习中库函数会是很好的学习资源,这个代码写的非常规范,如果感兴趣的话可以多看看库函数的实现,这对你的 C 语言学习会有非常大的帮助。

然后是单片机的学习,单片机软件开发基本上都是基于 C 语言的,所以你的 C 语言基础一定要扎实,这样你的单片机学习之路才能走的更顺畅。单片机学习无非就是各个模块的使用,所以学习的过程就是按照视频教程一个模块一个模块的学习,虽然辛苦,但你会发现自己每天都在进步,会有很大的成就感,这种成就感不是课堂学习能比的。

STM32单片机资料现在做的比较好的有正点原子和安富莱这几家,它们的入门资源也很丰富,可以好好利用。不过我当初学 STM32 时看的是 刘凯 老师的视频,也是相当不错入门视频教程了。

其他网友回答

答主作为在嵌入式开发领域奋斗了十多年的老兵,其中STM32单片机可以说用得非常多。今天看到了题主的这个问题,正好借助这个机会,回顾一下自己是如何开始上手STM32到开发产品的。希望我的经历能够给大家学习STM32有所帮助和启发。

答主从本科开始接触C51单片机开始,算是正式入行了嵌入式MCU开发的道路。参加校级的电子设计大赛,因为赞助的原因,选择了当时新款的凌阳单片机做了一款智能语音声控门锁。攻读硕士期间,虽然主要的横向项目都是以西门子/欧姆龙PLC+Intouch/组态王+HMI为主,但是依然还是在课余利用TI的MSP430单片机制作了两款GPS定位和GSM数传产品,并进行了产品化的尝试和探索。毕业加入到华为公司以后,任职嵌入式的软件驱动开发工程师。接触了大量的海思自研和各类主流的MCU+SOC芯片,嵌入式Linux能力有了很大的提高。但是没有接触当时最流行的STM32。

后来从另一家外企跳出来和别人自主创业,研发基于STM32的视频处理器。那是我第一次开始真正地接触STM32。所以说STM32完全是靠前期的MCU基础和编程基础,经过项目的历练自学成才的。同时,我也根据自己的STM32学习经历,整理出MCU软件入门过程的思维导图。

答主当时因为已经具备多年的C语言编码经验,也熟悉多款MCU的基本原理。使用全套正点原子的教材和开发板,并结合一本STM32的配套教材及芯片手册(好多页哇)进行了STM32的学习。所以前期的MCU的理论基础和KEIL软件的学习使用,进展得很顺利(此处我设定的第一目标是实现最小系统的运行和移植,所以进展很快)。这里对于基础知识,提醒新手朋友们一些细节的地方必须弄清楚明白,否则后面使用库函数的时候很容易弄混乱:

STM32的时钟总线,哪些外设都挂接在哪些时钟线上尽量要清楚;

STM32的时钟树结构/分频设置。我承认很难理解,但是多看几遍多画几遍基本都没啥问题。

STM32的GPIO管脚重映射,复用概念必须弄清楚。

STM32的中断分组,分级管理机制。

STM32的最小系统搭建,配置必须明白。最好能实现开发板的自主移植。

其他网友回答

学习步骤:

1、拥有一块STM32学习板,下载器,方便实践,学习STM32可以说是嵌入式开发行业的入门,工作中低端项目使用到STM32芯片的机会还是挺多的,比较高端的项目使用ZYNQ系列芯片比较多;

2、安装开发环境,如MDK5,下载驱动,Cubemx等;

3、推荐原子学习资料按照各个功能模块逐个学习,推荐资料芯片手册和中文参考手册,建议使用HAL库上手更快,比如学习串口、定时器、IIC、SPI、CAN、ADC、DAC、网口、输入捕获、PWM、FLASH等;

4、不断终结所学内容,形成文档,找机会将所学用于实际项目,多交流和实践,理解工作原理,比如串口,学习查询、中断、DMA模式发送和接收数据,熟悉各个寄存器功能;

5、目标是硬件原理图,PBC,软件设计都可以独立承担。

其他网友回答

推荐从ST新推出的STM32F030系列入手,这颗芯片是采用的M0内核。M0内核可以说是M3,M4等内核的一个子集,当然架构上是一样的。理解了M0+基本上也就理解M3,M4的原理了。从硬件上来说,即使是一块官方的开发板 NUCLEO-F030R8 也是非常便宜。从软件来说,配套的正版 Keil 开发环境是免费的,在官方网站就可以下载到。STM32F030 使用最新的Cube代码库,工程师只要熟悉怎么调用就行了,再也不用去花大量时间研究寄存器。熟悉了这个芯片后,可以快速的扩展到性能更高的M3,M4等产品。开发流程和库的调用都是一样的。

欢迎关注我们的头条号 TopSemic

如何快速入门STM32F0系列单片机,如何从单片机进阶到嵌入式 Linux,如何玩转MicroPython, 有经验丰富的工程师和你分享心得。

版权声明