本帖最后由 QQ哥 于 2013-1-24 23:33 编辑
开发板学习经验(提高篇) 上节说了单片机开发板入门篇,里面着重介绍了怎么对单片机产生兴趣,然后如何进一步深入的学习单片机内部资源,包括中断、定时器、PWM、DMA、串口通信、A\D以及D\A转换等。单片机过去叫做单板机,后来叫做单片机,先今有新“马甲”,叫做嵌入式,所有的都可以叫做单片微型处理器——单片机。此节将会详细介绍如何养成良好的单片机学习、以及日后开发的习惯。 一、养成良好的代码书写习惯 1.1 新建工程 书写良好的程序代码,从零做起,有条有理的程序不仅看得舒服,而且执行效率高,方便管理,以后也便于移植修改等! 物以类聚,以在此我贴上我使用的一个飞思卡尔作者的程序工程建立样板,采用飞思卡尔ARM Cortex-M4 内核的K10DN512VLL10处理器举例。 1.2 头文件结构 头文件由三部分内容组成: (1)预处理块。 (2)函数和类结构声明等。 假设头文件名称为 led.h。为了防止头文件被重复引用,应当用ifndef/define/endif 结构产生预处理块。 用#include < MK60DZ10.h > 格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。 用#include “gpio.h” 格式来引用非标准库的头文件(编译器将 从用户的工作目录开始搜索)。
头文件中只存放“声明”而不存放“定义”。 1.3 目录结构 如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别保存于不同的目录,以便于维护。 例如可将头文件保存于include 目录,将定义文件保存于hardware 目录(可以是多级目录)。 如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声 明”。为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。 1.4 空行标注 空行起着分隔程序段落的作用。空行得体(不过多也不过少)将使程序的布局更加清晰。空行不会浪费内存,虽然打印含有空行的程序是会多消耗一些纸张,但是值得。所以不要舍不得用空行。关联性不大的代码和子程序行间可以考虑加上空行! 1.5 代码行 变量定义、执行语句等各尽其职,勿要越俎代庖. 正确书写 不规范书写 1.6 注释说明 C 语言的注释符为“/*…*/”。一般采用“//…”。注释通常用于: (1)版本、版权声明; (2)函数接口说明; (3)重要的代码行或段落提示。 虽然注释有助于理解代码,但注意不可过多地使用注释。 注释是对代码的“提示”,而不是文档。程序中的注释不可喧宾夺主, 注释太多了会让人眼花缭乱。注释的花样要少。 如果代码本来就是清楚的,则不必加注释。否则多此一举,令人厌烦。 例如i++; // i 加 1,多余的注释 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码 的一致性。不再有用的注释要删除。 注释应当准确、易懂,防止注释有二义性。错误的注释不但无益反而 有害。 尽量避免在注释中使用缩写,特别是不常用缩写。 注释的位置应与被描述的代码相邻,可以放在代码的上方或右方,不 可放在下方。 当代码比较长,特别是有多重嵌套时,应当在一些段落的结束处加注 释,便于阅读。 以上参考来自高质量C++/C 编程指南,就事而论取其重要部分,再详细就是写书啦! 二、程序调试、开发能力 在平时学习单片机的同时,在参考完好代码的之际,能够将一个完整的功能代码从低平台移植到高平台或者从高平台移植到低平台也是一种锻炼,更是能力的提升,硬件平台相关性能也可以大幅提升。例如,将一个51单片机的彩屏驱动代码移植到ARM平台的STM32微处理器上,硬件性能彩屏刷屏速度将会有更好的效果! 现今作为入门级单片机8051内核单片机成为首选,在一定时间内(时间长短因人而异)掌握好此类单片机的同时,不妨考虑接触较多的性能更卓越的微处理器,多多益善,但有掌握较精通的一款单片机,否则试水太多,以后进步不明显了。从8位51单片机、PIC、AVR、STM8、PsoC3,飞思卡尔8位等,到16位单片机,MSP430等,到ARM平台的32位微处理器PIC32、STM32、飞思卡尔32位,乃至DSP等,因个人条件,不妨一一尝试。 学习一款单片机,不仅仅是为了学习这款单片机本身,更是利用其所带功能做出需要的产品。学习一类新型的单片机,不需要花太多时间在其自身功能上面死缠烂打,这样进步不仅不明显而且容易乏味。学习它,它有什么功能,比如USB功能,你可以做一个模拟U盘;它有AD转换,你可以做电压电流表;它有以太网接口,你可以做网络相关产品;它内部集成运放,你可以做信号放大类产品等。 在开发产品的过程中学习,是一种不错的体验,知识获取和成就感一举两得。 学习,少不了一个明确的目的,更不能少一种持之以恒的态度!在单片机入门、提高甚至以后,没有谁没有碰到过烦恼,不要放弃,更不要盲目的去学习,一种单片机玩了两三天又去玩其他型号单片机,浅尝辄止,久而久之,便无单片机可学,不知道什么是重要的。所以要脚踏实地,勿要好高骛远! 以上内容难免有纰漏,不当之处,望能指出,谢谢! QQ哥整理 2012-12-24
开发板学习经验(提高篇).pdf
(374.63 KB, 下载次数: 525)
|