单片机模块化编程

最近做一个基于GSM的智能家居远程控制系统,花了好多天来完成了pcb板的制作到硬件调试完毕,感觉和那些乱七八糟的元件打交道也别有一番乐趣,硬件昨晚了就开始我的软件编写。由于经验不足,很少做单片机的系统,最初编写GSM模块,再编写其他模块,每个模块多调试完毕后,才开始主控函数的编写,编写的过程中,还不断修改原来模块的代码,不久后又觉得这样的设计不合理,继续改吧,改到何年何月?这个系统刚开始没设计好模块之间的接口,搞得乱七八糟的。后来居然还在一个模块中嵌入另一个模块的细节,还好写了一些后意识到了这个问题的严重性,这样下去的话,不用多久,我所有的代码都乱七八糟了。决心模块与模块之间必须独立出来,一个模块不要混合另一个模块的内容,模块只留下公共接口给外部调用处理,特殊需要时才放到main.c中写,比如我这个系统几个模块都有中断,而中断处理函数中又必须调用其他模块的东西,那我就干脆把模块的中断放到main.c中,而在模块文件中只留下一个函数的副本,当然是注释掉的了。这样我以后查看模块的时候,知道这个函数放到哪里去做什么了。模块之间有条理地界限分明,是很利于日后维护与二次开发的。代码修改的过程中,由于最初的设计不合理,难免会有很大的改动,所以在你完成了一个比较重要的一个部分后,或者说你觉得它是一个进步的时候,立即备份一个,并给予一个编号,比如我就喜欢用beta***的编号表示,呵呵。否则当你做错了一大步后就没得后悔了哦。。。这些天进度还是客观的,很快就可以完成这个设计了。到时候发到博客与大家分享一下吧。决心这个设计完成后就把单片机撇在一边,开始ARM的学习。

总的来说,经验或者教训,就这么几个:

1.三思而后行,先思考各个模块的接口等具体细节,再完成具体模块的各个部分的实现。函数接口很重要,在你开始写模块的代码前,你就需要写好各个函数的声明与功能。然后具体实现它。

2.模块化,模块之间不要发生不明不白的关系,最好不要发生。实在需要就在主函数的那个文件里写吧。刚开始要一个模块一个地独立编写调试,然后再整合真个系统。

3.不是硬件底层的东西,先在界面比较好的环境中实现后,在移植到工程中。这样能加速调试过程。

4..边编写边维护,完成一个重要功能后,立即做好备份,这个是你的里程碑。也有可能是还魂丹。

以上皆是这次设计的一些心得,有对的也有错的,不停改进,不断提高,实现自我价值,加油

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值