简单谈谈STM32 - 走近嵌入式

版权声明:本文为博主原创文章,未经博主允许不能转载,转载请注明出处,原创不易。 https://blog.csdn.net/qq_19257541/article/details/89714841

       新系列准备起航,聊聊入门的那些“坑”,聊聊我们应该怎么走近嵌入式这个陌生而又熟悉的方向,让我们从入门到喜欢,而不是放弃。本系列不能代替教程,该看教程还是老老实实看看教程,遇到想不懂了,可以尝试在这个系列的文章中找找答案,看看我在学的过程中对同样概念的理解能不能给予一个不错的启发。

这篇文章写写停停,不知道该从哪里下手,总的来说还是在5月份到来前开始第一篇。感谢这一路上,帮助过我的老师、师兄、同学,毕竟我也没想过,让我开始专精的竟然是这门技术。

       对于嵌入式也许会熟悉,也许听起来会有些畏惧,在前面我也有提到,这是我目前入门时间最长的技术,但意料之外地,它也成了我开始专精的技术,着实是很有魅力的。我目前还没有能力,能很通俗地说出嵌入式是一门怎样的技术,一直停在这里写不下去,因此,换个思路,暂时可以简单地认为是:

       通过编程去控制硬件的技术。

       当然,说法并不准确。接触这门技术,最起码还是要有一些C语言的编程基础的,对宏定义、结构体、枚举、共同体以及指针有一定的了解,这应该还没能吓退你学习的信心吧?也许,你有接触过,anduino,51单片,然后想玩一下ARM芯片,从最简单的STM32系列开始,有这样的基础接触起来倒是不会很费劲。但是,如果是像我这样,从0直接学习STM32的话,面临的困难可能会比较多,甚至可能从入门到放弃,但,我相信我接下来的文章,可以协助一下你入门,感受一下嵌入式极具魅力的大世界。

      每个人接触到嵌入式这个词,都有自己的原因,有自己的兴趣所在,或是项目、工作需求。我从自己个人出发,谈谈我认识嵌入式的过程。

      首先,需要接触嵌入式,我个人是因为一个机器人比赛和一个项目的需要,看到一辆机器小车在自由运动,平移、旋转,可以打子弹,夹取、抬升,或是,模拟人的行走动作的机器人,等等,这些有趣的机器人给我打开了一扇窗,也是坚持嵌入式的一个源动力。作为学习编程的人来说,看到这个,可能第一个想法就是觉得很厉害,怎么也想不出怎么用编程去实现这个,尤其是用着我们整天对着小黑框的C语言,这些机器人会成为我们兴趣的源泉。对啊,C语言怎么就能做到让这些机器人做出那样的运动,简直不可思议。如果是大学生,再往深里接触,也许就会发现周围有不少同学高中时候玩过anduino,做过一些平衡小车,投去羡慕的目光——真厉害。然后,还有我们很常见到的无人机,里面也包含了嵌入式技术。同时,在我们现在常听到的一个词汇,物联网,里面也有着嵌入式技术,或者可以认为是嵌入式与现在的网络技术结合的技术。

      现在是不是已经开始觉得有点意思了呢?再谈点贴近我们生活的嵌入式技术,比如智能手环,扫地机,工业机器人,智能家居等等,当然,还有我们整天拿在手里的手机,平板,这些均是嵌入式的应用,有小有大,有简单有复杂,现在我们应该不难看出嵌入式系统的共性了吧:

       独立的系统,可裁剪的系统,可简单可复杂。

       现在再谈嵌入式,可能已经有了大概的感知了。具体的定义那些,可以自行百度谷歌查看,但是也许很难理解。对于刚入门或者入门不久,抑或是做开发时间不长的我们来说,还需要时间去理解,但我们可以暂时跳过这样概念性的描述,直接从有意思的应用出发。那么问题来了,我们应该从哪里入手?

       这是大概就听说了51单片机(以下简称51)和ARM的STM32系列(以下简称32)的芯片了,至于从51还是32入门,原则上都可以。51入门相对简单一些,32可能相对难,我是从后者开始入门的,现在再回去看51的代码也能写,也能挺快上手。这个可以自己权衡,本系列不谈51单片机,个人认为它已经逐渐被取代了,但是很多概念还是和ARM相通的。而接触ARM,基本都会接触正点原子和野火两个公司的教程,都是可以的,但是他们的教程中会讲的很细(也是因此无论入门还是已经入门了,这些教程有很有价值),可能没办法像自己之前接触的很多技术那样,看一遍可以很快写上一个看起来还行的例程,但是给点耐心,多看几遍,自己拥有一块板子,多操作一下,在接下来的系列文章中,我会加一些自己的开发见解进去,希望能协助快速入门。

入门注意的一些点(个人意见):

  1. 库函数入门,不要直接去接触寄存器,后者更加难懂。
  2. 硬件配置代码不需要一个一个手打,学会修改,才是较好的方式。
  3. 静下心来看,反复多遍看,可选择按需求跳着来看,有了一个大体的印象后,再    回头细看,收获也许会更大。

       其实换一种思路想,学习STM32从裸机开发开始,了解一下相对底层的概念,然后接触实时操作系统开发,了解操作系统原理,会有种重新走一遍计算机发展历程的感觉,其实还是很美妙的。

       依然记得我控制的第一个电机转动时候的开心,依然记得我用麦轮运动原理控制的第一个底盘的喜悦,依然记得我控制的第一个简单的自动运动小车时候的兴奋,依然记得决定放下其他方面,静下心来专精C语言,专精嵌入式的踏实。再到现在控制一个比较复杂的机器人,从深入学习C语言,到模块化编程,到逐步准备从裸机开发过渡到使用实时操作系统开发,这一路上走近嵌入式,还是很有趣的。

后记:

其实我也确定是不是应该等自己更强的时候再写,但是相对能确定的是,我现在还能隐约记得我自己之前入门的之后遇到过的一些问题,这些问题可能会让我能写出更通俗易懂的文章。个人觉得,刚入门不就或者已经深入到大神级别的人,才相对大可能写出非常通俗易懂的文章,所以可能现在正合适,等写完这个系列,大概我对嵌入式操作系统也有了一定的理解

不定时更新文章,尽可能坚持下去,转载请注明出处。

猜你喜欢

转载自blog.csdn.net/qq_19257541/article/details/89714841