技术文档

单片机的使用说明 初学者如何快速上手单片机

小编 2024-11-24 技术文档 23 0

初学者如何快速上手单片机

(此处已添加圈子卡片,请到今日头条客户端查看)

单片机的学习者有初入职场的菜鸟工程师,有渴求知识的在校大学生,也有迫于项目需求的电子工程师。迫于项目需求转换开发平台的电子工程师往往具备其他类型单片机的使用经验,学习新类型的单片机并不会有太大的障碍,但是菜鸟工程师和在校大学生就是真正的“初学者”。初学者在开始学习单片机的时候都有一个相同的问题那就是“怎么才能尽快地学会使用单片机?”

菜鸟工程师由于身边有“老兵”的指导,加之有目的明确的工程项目的驱动,在单片机学习上并不会走太多的弯路。在校大学生在学习之初,首先要面对的就是“迷茫”,空有一腔热情,却不知如何下手。

在学习单片机之初应当有一些基础知识准备。单片机是电子技术发展到一定程度才出现的产物,本身就是众多电子技术的结晶,对其中一些知识的了解是学习单片机所必需的,所以网络上经常出现的“零基础”学习单片机是不客观的说法。在学习单片机之初,应该具备基础的电路知识,主要包括基本的数字电路和模拟电路知识。比如,在学习单片机的I/O口时,就会涉及数字电路知识中I/O口电平、施密特触发器等内容;在学习单片机的ADC通道时肯定会涉及信号带宽等模拟电路方面的内容。在学习单片机之前不苛求必须有深厚的电路功底,但是常识性的电路知识是不可或缺的。

学习单片机的很大一部分工作是学习单片机的编程,简单地讲就是编写代码控制单片机的工作流程。目前,绝大部分的单片机开发工具都能够支持C语言,并作为单片机的开发语言,也有人推崇使用汇编语言作为单片机的开发语言。不可否认使用汇编语言可以获得更高的执行效率和代码密度,但是汇编语言在开发效率和代码的可读性上比C语言要差。事实上,C语言编译器效率已经提高到了相当高的水平了,C语言编写的代码编译后在执行效率和代码密度上跟汇编语言相比并没有太大的差距,C语言早就成为单片机开发的绝对主力。所以初学者掌握基本的C语言知识即可,无须在开发语言的抉择上花费太多的时间。

准备的最后一点就是学会使用最基本的实验设备,这里列举一般的实验室都能提供的4种设备:万用表、稳压电源、示波器和信号发生器。这些设备的熟练使用将对学习中遇到的调试(bebug)有非常大的帮助。

有了以上的准备,就可以正式开始单片机的学习了。初学者最好选用一款性能稳定,范例丰富并且推广较好的单片机作为学习目标。性能稳定,避免在学习过程中遇到由于芯片本身的设计失当导致的一些无法解决的问题;范例丰富,大量的示例供用户阅读和借鉴,更容易理解单片机的操作机理;推广较好,意味着学习的受众面较广,有很好的学习氛围和学习资料,并且有容易获得的学习开发板。从这3点出发,MSP430系列单片机就是一个很好的选择。

首先,该单片机目前在电子行业已经使用多年,一直都作为低功耗单片机的标杆产品;其次,该单片机所有的型号都具备官方范例代码,而且有较多的参考案例;最后,MSP430单片机在中国通过大学计划推广了多年,大量的大学生使用这款单片机完成实验、参加竞赛,积累了很多的书籍教材和网络资料,开发板类型也很丰富,TI提供售价约为几十元人民币的LaunchPad开发板。单片机都有相似性,学会使用一款单片机,再过渡到另一款就不太困难了。

学习单片机可以从学习单片机的开发环境开始,当前的单片机都有自己对应的集成开发环境(IDE,Integrated Development Environment),并有免费版本供初学者下载使用。集成开发环境可以完成代码的编辑、编译和调试过程,使用起来比较方便。TI推出的CCS5还可以完成MSP430单片机的图形化配置。对于初学者,集成开发环境的基本使用没有障碍,但是特别要注意的是开发环境中对应的开发工程的属性配置。

熟悉开发环境的开发流程后,就可按照引导教材或者用户手册,逐一了解单片机的各功能模块的特性并完成对应的功能模块的实验操作。逐个模块熟悉下来,基本上一款单片机即可学会使用。这样一个流程下来,能够掌握单片机的基本操作。希望熟练掌握则需要进一步通过完成更为复杂的实验或者项目来锻炼。

前面的介绍中也强调了实验的重要性,实际上大多数学习单片机的初学者都会陷入一个误区,过度的重视实验,把绝大部分精力放在调试上,却忽视了单片机使用原理的学习。这种情况在大学生身上非常明显,很多情况下还没有能够理解单片机功能模块或者外设的使用原理和方法,就急切的展开实验。大多数情况下,编写的代码还存在缺陷甚至错误,无法达到预期的效果,就进入到了无尽的盲目修改和调试中。最典型的情况就是刚开始接触一个外设,连工作方式和寄存器的功能还没有弄清楚,就开始粘贴示例代码,并编译下载。反复调试不能成功,心态就开始变的浮躁,进而厌恶单片机。

如果一直调试未果,学习热情被消耗殆尽,对单片机的使用产生恐惧感,最终就会放弃单片机的学习。细究这种情况的原因,其实就是急功近利的心态在作祟。初学者都急切的希望自己的代码可以跑起来,所以重心就从“学”偏移到了单纯的“做”上。这种心态我要特别提出来,希望能够告诫初学者必须保持平稳的心态,先仔细地浏览教材或者用户手册,理解工作原理,之后再调试代码完成实验。

单片机学习过程中每个人都会遇到各种各样的难题并且遭遇长时间的调试过程。遭遇到这样的情况,就需要冷静下来查找问题成因。一方面,可以借助于网络,查找是否有相似的问题并借鉴其他人的分析及解决方案,这是一个比较直接高效的方法;另一方面,反复地查阅单片机的数据手册或者用户手册,逐个分析列举可能的原理,并设置对应的测试来解决,一些“莫名其妙”的问题,往往需要通过这样的手段来解决。

当然,能够获得有使用经验的老师或工程师的指导则是最直接、最有效的方法。随着单片机学习以及使用的深入,遇到的问题将越来越复杂化,这时候外界因为缺乏对此项目的深入了解,所能起到的协助作用就会减弱,这个时候独立的定位问题以及解决问题的能力就必须具备。所以在学习的整个过程中,都应该有意识地培养这种能力。

当熟悉单片机的使用之后,就应该完成一个视野转换的过程。这个时候关注范围则应该由单片机扩展到整个单片机系统上,不仅仅关心单片机上代码的实现,还需要考虑如何构建以单片机为核心的电子系统。单片机工程师一般会对一个或者若干个类型的单片机非常熟悉。

在得到工程项目需求时,能够快速地评估系统所需要的单片机控制核心,在满足需求的前提下一般会尽量采用最熟悉的单片机,合理设计划分系统电路功能模块,尽可能高效利用单片机片上的外设,以达到最优化的设计。如果评估发现使用的单片机不合适,则还需要更换单片机平台。在工业应用上,还必须考虑单片机系统所需要面对的严苛工作环境,保证系统能够顺利通过相应工业标准的测试。最终完成由点到面的扩展,逐步朝单片机工程师方向迈进。

(此处已添加圈子卡片,请到今日头条客户端查看)

什么是单片机?怎么学?怎么用?那请你认真看完本文(勿转载)

一、想快速入门进阶,面向工作时

先把工作中需要的东西学会,一项一项的来,比如先把GPIO弄清楚,怎么初始化,怎么输入输出,然后定时器、串口、ADC、DAC、DMA、SPI等等先把用得着的一个一个地做, 都弄明白了再往一块整合,从简单到复杂,硬件操控起来了也就算对这种单片机入门了吧,软件方面,不管用什么单片机,用什么编译器,区别不大初学的最好还是买个开发板,不 需要多高级的,有几个常用功能做出来,其它就容易了。

关于初学者是否需要弄清底层函数问题:

先玩起来再说底层函数,一般就用现成的库,绝大多数应用都没问题的,至于库里面是什么,先不管它,到了高级阶段再去看。

二、进阶步骤

会点灯-入门;

会使用各个常见中断,能把项目做出来-熟练;

会DMA、PWM各种模式,能把项目熟练完成-精通;

会CAN,USB,RS232,RS485,SPI,I2C,运动控制,电机驱动,各种滤波算法,PID算法-非常精通。

三、经验分享

自己的体会,对不对不知道哈。我自己学MCU就是大学里学的51单片机,所有功能会用算是入门槛,后来学习和工作慢慢接触其他的PIC,Freescale,STM这些,慢慢发现其实 东西都是有相通的,但是一定要动手,不管是用例程还是自己写,都要带板子跑代码,过程中肯定有问题慢慢解决,才能有提高,而且现在的片子底层驱动库都有,项目用的时候就 是参考一下手册会调用,底层驱动功能正常就可以了,很少项目里面从零开始写代码了。

四、经验分享

建议:初入STM32的学习者不用记,直接用就行了,这个玩意,实践才能进步;边学边用才是正途,关键是用,不是学。

五、经验分享

可以自己试着完成一个功能,比如简单的流水灯,逻辑肯定自己写,涉及到stm32的比如怎么初始化、怎么配置之内的不会的可以查资料,但是一定要要有自己的思想, 完成了我觉得就算入门了。

六、关于初学者是否要弄懂底层函数

初学者没必要弄懂底层函数。项目需要用到什么再去研究什么。比如你的项目只要点亮一个LED灯,那你只研究怎么配置GPIO就好了,没必要去研究什么PWM了。现在 有个神器叫STM32CubeMX,直接生成一些底层初始化代码,加上HAL库调用,哪里不会再查哪里。底层函数这玩意,你调用多了,自然会去研究怎么配置达到你要做的效果, 在项目中进击,没必要一上来就啃底层,专注你的算法才是真正有意义的事情。

七、经验和观点的分享

我也有思考,如何清晰、系统地学习 STM32,建立整个 Cortex-M 知识体系,以及相应的理论支撑,并最终应用到 Cortex-M 内核 MCU。现有的教程也都没有构建这样的 知识体系,学习、成长路线,所以很多人(包括我自己在内)都会在某个阶段遇到瓶颈。到头来发现自己依旧停留在知道这个点,也会用,会面向百度编程,但一遇到问题需要调试,需要更多的理论支撑的时候,就无从下手了。 另外,STM32 做项目的话,应该也少不了使用操作系统,所以 RTOS 还是需要学习的。RTOS 面又是比较多的,现在又有物联网操作系统的概念

(比如 RT-Thread【物联网相关的软件包非常多】,华为的 LiteOS【官方动作比较小】,阿里的 Aliosthings【WIFi 等模组支持的相对较好】)。 所以,有人能把这套内容整合出来一个学习路线和测试验证知识点,应该会非常好。

八、经验分享(什么时候可以接触项目)(指导的很多方面)

会建立工程点灯就算入门

知道各个外设的基本特性就算基本熟练(定时器 SPI UART IIC SDIO FMC,有需要再看网络和USB) 知道怎么读取、控制外围设备(采样、显示、射频一类的), 会用现有库就算精通(RTOS/UI/存储/网络)剩下的都是工程经验,代码组织、排错、调试一类的,多做就行。 会用串口,能通过示波器看懂SPI/IIC的波形、能输出想要的波形,会输出PWM波,就可以开展项目了,另外是C语言要扎实,有一点总线知识,至少要明白堆栈的含义,知道自己随手定义的变量处在什么section,熟悉数据的内存组织结构更好(这些最好是多做调试多看MDK的Call Stack+local窗口和Watch窗口,看看 数据对应的内存地址和组织方式,对你深入了解语言、CPU有很大好处)。 深入的逻辑、代码组织方式,需要你自己在实践中总结,看别人的源码也是比较不错的方式求快的话,不建议看视频,从PDF教程开始,配合官方的手册对照看。

一个月从0到会走路是没问题的。

关于学习方式:

视频的进度和内容不容易筛选,你只能跳着跳着看,或者1.5倍速完整拉完,跳着看容易遗漏看PDF方便反复查看仔细比对。先看设计大纲,自己理解一遍, 然后针对性地看自己不太理解的的地方,在具体技术细节上配合datasheet,全程都是干货。再自己拿板子跟着走一遍基本就OK了。

九、经验分享

1.芯片只是一个底层工具,当然你只有完全了解你所使用的外设工作逻辑后才可能设计出可靠的底层系统。

2.底层熟悉后,剩下的就是项目的应用问题,算法,协议,应用逻辑等,这个就是行业属性,行业积累。

3.如果说入门,至少知道配置一个外设的完整流程,不一定每一个都要用一遍,只要你知道大概流程,用的时候知道看什么地方就入门了。

十、学习心态方面(关于工作面对项目)

同意你的意见,我觉得搞技术心态很重要,就是蔑视他,不就是什么什么嘛,老子能搞定你 。 如果遇到问题就是天大的事情,感觉自己不行,搞不定。这样即使解决问题了,也只是解决这样一个问题。

本文摘抄自正点原子论坛,如侵权,请联系本人删除 原文链接文末所示

相关问答

单片机的使用 流程?

第一步:数字I/O的使用使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合...

买的 单片机 如何能 使用 ?

使用51单片机需要达到以下基本条件:1、至少要搭建一个最小系统;2、你需要编制一个51的控制程序;3、你需要将程序编译连接成HEX或BIN格式的代码并下载或烧录...

谈谈你对 单片机的 认识?

从大一的时候在大学图书馆看到关于AVR单片机的书籍,到参加竞赛、工作,我和单片机已经打了六七年的交道了吧。其间我都是在做产品的软件开发,与硬件工程师合作...

单片机 程序下载好后如何运行?

只要程序下载进单片机里了,它就会自动从ROM区的起始地址开始运行。程序怎样安排的它就怎样运行,比如按键检测、引脚输出、其他中断程序等。比如你写了一个循...

单片机 是什么?

单片机不是执行特定逻辑功能的芯片,而是将计算机系统集成到芯片上的芯片。它等效于微型计算机。与计算机相比,单芯片计算机仅缺少I/O设备。简而言之:芯片变成...

单片机 ascii码字符表怎么用?

单片机ASCII码字符表可以用于将字符转换成对应的ASCII码值,或者将ASCII码值转换成对应的字符。以下是使用单片机ASCII码字符表的步骤:1.找到单片机的ASCII码...

单片机 编程的基本步骤?

基本步骤如下:1.确定程序的格式和数据类型:首先需要确定程序中的数据类型,如数字、字符、布尔值等。2.定义程序的地址和寄存器:在程序中定义一个地址和一...

51 单片机 max7219数码管 使用 方法?

使用方法如下:1.接线:将Max7219引脚与MCU引脚相连,VCC和GND分别连接到正负电源上。2.初始化:编写初始化函数,包括设置控制口输出、设置扫描限制、设置亮度...

单片机 可分为商用,工业用,汽车用以及军用产品,它们的 使用 温度范围各为多少?

按温度适应能力及可靠性分为四类:商业级(0~70摄氏度)、工业级(-40~85摄氏度)、汽车级(-40~120摄氏度)军工级(-55~150摄氏度)一般区分都是按芯片型号的后...按...

单片机 有操作系统么?

可以这么来说当我们运行的程序不是“足够”复杂,是我们人为可以控制的情况下在单片机中是不需要操作系统的,直接写程序,操作硬件就可以完成各种我们所需要...

猜你喜欢