单片机MCU学习方法总结

根据个人学习MCU的经验,总结关于MCU的学习方法。本文的主题结构如图(完整架构图,见文尾的下载链接):

以下按照主题结构图的内容顺序分析。

一、目标与计划
在开始学习MCU之前,我们先思考以下的问题。整个MCU学习过程下来,很多时候是在对以下问题进行回答。
思考:
原因: 为什么要学MCU?
目标: 达到什么水平?
计划: 怎么达到这个水平(怎么学)?用多长时间?
1、原因:视个人而定
①、为学习而学习?
②、为解决某个问题而学习?
2、目标:视个人而定
①、只是单纯入门怎么使用MCU?
②、打算先入门,再稍稍进阶?
③、打算先入门,再进阶,再深入?
3、计划:关于怎么做的问题。可以以最终目标为向导,对最终目标进行分阶段分解,再对每个阶段的目标进行方法的制定。学习计划制定完成后,剩下是对计划的执行、反馈、调整的问题了。
①、入门:要准备什么?先哪些方面开始接触MCU?
②、进阶:已经具备入门的水平啦?进阶要学什么?
③、深入:入门、进阶都完成?要从哪些深入MCU?

二、步骤
关于MCU的学习步骤,结合个人经验,以32位MCU为例来讲解。
1、准备
自身准备:
①、编程能力:至少会C语言,基本看得懂汇编
②、硬件能力:看得懂基本的原理图;基本的焊接能力;
外界准备:
①、硬件:开发板、调试工具;
②、软件:Keil for ARM(MDK)、JLink驱动、串口终端等的安装
③、资料:MCU数据手册、开发板原理图、MCU的例程
工具使用:
、MDK:创建工程、工程文件结构的管理、设置参数的配置
、JLink:JTAG或SWD模式的连接使用,用于烧录、调试
、万用表:基本的通断路、电压电流测量;
(进阶:1、使用EDA软件绘制原理图;2、使用示波器、逻辑分析仪对数据进行辅助分析)
2、流程
关于MCU的不同阶段的学习基本内容,个人建议如下图所示:


三、部分方法
此部分是关于我个人在学习MCU过程一些常用到的技能的方法论的总结。
1、外设的学习方法
在刚接触一个外设时,可以带带着以下3个问题去阅读MCU的数据手册,找到解答。
①、是什么:了解外设的概述。
②、有什么用:了解外设的功能描述。
③、怎么使用:了解外设的寄存器描述。
2、外设的初始化配置方法
一般MCU的外设的初始化配置流程,方法如下:
①、时钟开启
②、相关引脚配置:是否复用
③、外设寄存器配置:功能模式选择、时钟配置、工作方式配置
④、使能配置:外设使能、是否中断使能
3、外部IC芯片的使用
MCU经常通过通讯接口访问外部IC,如可以通过SPI接口访问外部FLASH、通过IIC访问EEPROM芯片、通过并口访问外部SRAM等等。对于这些外部IC芯片,在使用时,通过阅读这些IC的数据手册时,我们可以重点 关注以下几个内容:
①、是什么:手册的概述
②、有什么用:特性
③、怎么用:通信接口?各个引脚功能?时序?命令?

四、建议点
这部分内容是关于学习MCU过程,我个人的一些建议。
1、模板工程建立
建立一个具备基本功能的工程作为模板工程,并配置好相关参数。方便我们后续复用,后续功能都可以在这个模板工程中添加,不用重复创建工程。
建立模板工程,要注意以下几点:
①、硬盘中模板工程的文件组织结构:启动文件、驱动文件、 main函数、编译中间文件、工程文件等的存放;
②、MDK中的文件组织结构:启动文件、驱动文件、 main函数等的存放;
③、参数配置:MCU型号、晶振频率、调试等的配置
④、包含基本功能:系统时钟配置、串口功能。
2、统一的代码规范
统一的代码规范,有助于编程的规范性,提高代码的可读性、可维护性。建议制定、采用统一的代码规范进行编程,哪怕代码只是写给自己看而已。
制定代码规范,可以关注以下几点:
①、命名规范:
宏定义、变量名、函数名
②、注释规范:
行注释、函数外块注释、函数内段注释
③、排版风格:
代码格式、对齐要求、文件头尾注释格式、函数头注释格式
3、外设学习注意点
初步学习:
①、建议简化代码:
除了GPIO、UART、系统时钟配置外,学习某个外设时,刚开始使用,尽量不要加入其它外设如LCD屏显示、按键等进行触发;将代码功能设计成通过串口打印来观察执行状态。
②、简化调试:
尽量使用串口进行调试,不要通过LCD屏、按键调试。将寄存器数值、变量数值、代码执行过程等通过串口打印出来理解。
等该模块外设各功能调试没问题后,再综合其它外设进行使用。
4、使用寄存器方式 VS 库函数方式学习
关于是用寄存器方式还是库函数方式学习MCU的疑问。个人建议如下:
①、如果想较彻底地了解外设怎么用,刚开始学习,建议还是用寄存器配置方法:根据控制寄存器、状态寄存器的功能描述,结合自己的功能需求,对相应寄存器相应功能位的配置。
好处:对该外设功能的理解更深;对寄存器功能了解更深,有助于调试过程找问题;编程的位运算处理能力;
②、如果已经掌握了怎么样用寄存器方式使用外设的能力,后续接触其它MCU可以通过库函数的方式去学习或编程。因为不同MCU的同样外设功能,一般是大同小异,已经具备了通过寄存器方式对一款MCU的功能使用有较深了解的能力。在接触其它MCU时就没多大必要再去重复造轮子。
:本文内容结构完整的思维导图 的下载链接:
http://download.csdn.net/detail/bulebin/9892844


猜你喜欢

转载自blog.csdn.net/bulebin/article/details/74853501