打印

【抛砖引玉之 大华说编程】

[复制链接]
831|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liaojihua2010|  楼主 | 2021-12-28 15:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liaojihua2010 于 2021-12-28 15:14 编辑

#申请原创#
         作为一个从事电机驱动软件开发近15年的编程人员,并没有所谓的干货。不过这并不影响我从自己的角度谈谈对编程的认知,所以就在这里抛砖引玉一下吧。记得第一次接触单片机编程,那毫无疑问是在大学,作为电气自动化专业的学生,单片机是一门必修课。不过有意思的是,当时同学大多还在用汇编时,我却有了用C语言写51单片机程序的机会。看着自己写的代码成功运行,还是颇有点小得意。所以单片机实习课自然也是优异表现,拿到了满分。
         之所以叨叨这个过程,是觉得最初的相遇往往不大容易忘记,而随之而来的成长所带来的进步更会让初出茅庐的新鲜增加不少趣味。比如那时候对于中断的理解,然后51单片机相对蹩脚的处理能力,以及 所谓 变量命名随意化,英文基础不牢固,全局变量满天飞,注释想到哪注释到哪,函数随便定义,没有模块和分层的概念,也没有专门的Read me 文档,以至于时间长了以后自己都不知道写了什么... ...
         所以在笔者看来,编程首先应该遵循“横向分块,纵向分层,各自独立,接口衔接,注释合理”的基本原则,这主要是为了程序的可读性、可移植性、模块和层级性等目标。下面分别解释各个基本原则的具体实现。
        "横向分块",就是说在创建.c文件时,充分考虑到每一个.c文件所要表达和包含的功能模块。比如键盘处理、液晶显示、通讯处理、模拟量采集处理、故障保护等应当各自写成一个文件,以便调试时能够按照功能单独调试。
        "纵向分层",就是说在创建.c文件时,同时照顾到MCU配置层、接口层和应用层的划分。这样在调试代码时也能快速定位层级异常,同时提高代码的可读性。
        “各自独立”,就是说每一个功能函数都是独立的,只实现一个功能。比如按键的键值获取就是一个单独的函数,也能方便不同平台的调用移植。
        “接口衔接”,就是说能用形式参数传递的函数都要定义成形参输入型函数,即使不得不用全局变量,也尽量同类型变量采用结构体、联合或是枚举的方式,有利变量归类和查找。
        “注释合理”,就是说每个.c文件要在开头说清楚这个文件实现的功能,排版遵循文件说明+变量声明+函数声明+函数定义注释的方式,每个函数在定义前增加功能和输入输出变量等说明。同时每次调试或者更改、修复BUG都需要将记录写在专用的Read me 文档中,已备将来查找记录知道做了什么修改。
       以上是笔者个人抛砖引玉的浅见,作为总结分享给大家。
       后续笔者会继续按照这个风格谈谈对电机的认知,对电机驱动算法的的认知,以及其他相关的知识,欢迎大家关注!

使用特权

评论回复
评论
liaojihua2010 2021-12-31 09:14 回复TA
@dirtwillfly :谢谢鼓励,你们的支持是我发帖的动力! 
dirtwillfly 2021-12-29 08:26 回复TA
总结的不错 
hobbye501 2021-12-29 08:25 回复TA
说的很有道理。。。不止电机是如此 所有编程亦如此 

相关帖子

沙发
LED2013| | 2021-12-28 15:21 | 只看该作者
很多干货都会有一定的层次,不像那种手把手教学的视频

使用特权

评论回复
板凳
hobbye501| | 2021-12-29 08:26 | 只看该作者
以前我也不爱写文件头 函数头 注释之类的 怪麻烦的。。。后来岁数大了 记性不好 没办法

使用特权

评论回复
地板
比神乐| | 2021-12-29 09:52 | 只看该作者
编程还是要有一定的章法,太随意了不好

使用特权

评论回复
5
Gavin3389| | 2021-12-30 08:54 | 只看该作者
上学那会,只会IF到底,
时间长了,慢慢学会了很多小技巧

使用特权

评论回复
6
liaojihua2010|  楼主 | 2021-12-31 09:15 | 只看该作者
Gavin3389 发表于 2021-12-30 08:54
上学那会,只会IF到底,
时间长了,慢慢学会了很多小技巧

嗯嗯,都是那样过来的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

337

帖子

3

粉丝