会使用51单片机的前提下,如何自学stm32?

怎么自学 STM32 呢?我想想。当初我也是在学习了一年的 51 单片机后才过渡到 STM32 的,所以算有些经验了。

 

我大一的时候在实验室的环境下开始学习 51 单片机,虽说学长不怎么管我们这些小白吧,但起码有个环境在这,有不懂的问题都可以向学长提问,这就是环境的好处了。但是如果说周围只有你一个人在学单片机,那这条路走得就会比较艰难了!为什么?因为单片机学习不仅涉及到软件,还涉及到硬件,这就是为什么说嵌入式门槛高的原因了,出了问题你不知道是硬件问题还是软件问题,还是都有问题,需要你根据经验一一排查才可。

 

说回自学 STM32 问题,STM32 单片机远比 51 单片机复杂,寄存器数量是它的好几倍,各种外设模块,DACRCSPICANSDCAN TIM等等,而每一个模块可能都有单独的时钟,在使用这些模块时都要提前将时钟配置好,否则根本不能工作;而配置这些外设时钟之前你还要先配置系统时钟才行,而系统时钟又涉及到了分频、倍频的问题,也是繁杂。正因为这些东西实在是太多了,所以出现了库函数开发!

 

库函数开发的好处就是你不用管如何去操作寄存器,你只要了解什么时候该调用哪一个函数即可,相当方便,所以库函数开发的思路就是,记住各个函数的功能、调用条件(不需要死记硬背)就可以轻松进行开发了。但也正因为如此,所以在学STM32 的时候第一个拦路虎就是如何建立一个 STM32 工程,因为库函数开发需要的文件数量远比单纯的寄存器开发多的多,而这些文件之间还有关联性,很容易编译出错,所以可能在 51 单片机很简单的建工程到了 STM32 里面就会变得复杂了。但这些问题通过网上搜索还是很快能解决的,但是解决归解决,你是否明白为什么就这样解决了呢?所以你在开始学 STM32 的时候心里会很没底,因为你连最基本的工程都不知道该怎么才能建好。

 

然后第二个拦路就是时钟了,前面说过,STM32的时钟也是相当的复杂,所以很多教程上来就是教你如何配置时钟,这本没有错,但是你可能只是想尽快的点你第一个 LED 灯罢了,却要学这种感觉和点灯无关的时钟问题,所以心里也是挺着急的。事实上,点第一个 LED 灯是很简单的事情,只要你把对应的引脚配置好了就可以点灯。可能你会问,不要配置时钟吗?当然要,只是你点个灯对时钟的要求根本不高,所以时钟频率到底是多少可以不管,因此你直接用用默认的时钟配置就行了,因为在进入main函数之前启动文件(唯一的那个汇编文件)其实已经对时钟进行了配置(默认一般按最大的时钟频率进行配置),根本不需要额外的时钟代码的。所以这一点可以省去初学者不少功夫,当你比较熟练的掌握了库函数的时候,再回过头来去理解时钟的配置可能效果会更好。

 

关于 STM32 入门视频,你可以找刘凯老师的视频教程(有清晰版的),讲的还是不错的,因为我就是通过他学习 STM32 的,一集没落下的全部看完了。

 

最后再说一点,STM32 学习不比 5151 单片机的调试功能不比STM32,所以在寻找 BUG 上还是比较麻烦的,而 STM32 因为有在线调试功能,可以实时观察数据、指令跟踪,所以在学习过程中一定要好好利用(当初我学习的时候根本不知道,还傻傻的用 51 那一套调试),而开发平台我觉得 MDK 最好,因为它把常用的寄存器都进行了集成,还有各种调试机制,非常人性化。

 

最后再配两张图让你感受一下 MDK 调试的强大之处(纯软件仿真的):


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从入门学习单片机到现在,不知不觉有了八个年头,也确实积累了一些经验。经常在网上发布一些开源设计,不免会被问起,如何...
    穿山甲开源工作室阅读 12,400评论 7 60
  • 姓名:王靖尧 学号:16020188025 转载自https://blog.csdn.net/DP29syM41z...
    倚楼睇风雨阅读 5,048评论 0 8
  • 姓名:周崇杰 学号:16040120059 专业:机械设计制造及其自动化 转载自:http://blog.csd...
    CJbaby阅读 4,726评论 0 0
  • 奇林低着头,假装在认真看书。思绪也不知道在哪飞着,总之老师的声音就像是由山的那边传来,中间隔着一层层的风,只是有着...
    是碌碌阅读 1,358评论 0 0
  • Top7、摩羯座女生论智慧,摩羯座女生其实不会差与白羊座,尽管是女生,但摩羯女理智不会比差于其他人,细心谨密,她们...
    天蝎looks阅读 2,405评论 0 0