单片机编程实用的函数封装方法原理——新手强化编程思路

本文介绍了单片机编程中如何进行函数封装,强调了在功能复杂时封装函数的重要性。首先,通过分析功能需求,找出所有子功能并封装为独立的子函数。其次,查找并理解相关寄存器,尝试配置以确保掌握。最后,确定函数参数并用C语言实现寄存器配置。这是一个提高代码可读性和复用性的有效方法。
摘要由CSDN通过智能技术生成

大前提:C语言基础扎实且熟悉单片机编程(或者会自己查资料解决基础问题)

小前提:该功能较为复杂不封装函数难以促成简洁的代码

 

第一步:寻找自己要实现的功能的所有子功能的介绍及实现办法

举个例子:

 

 

 

当我们目标功能是A,查该功能的资料得知在这款单片机(模块)要实现这个功能需要同时实现功能B和C,然而还得知做B功能前要先实现C功能。接着说我们去看这两个功能怎么实现,又发现功能B需要功能D作为前提。当然过程中会有一些“干扰项”如功能D是功能E、F的必要条件。这时候我们就要明确我们目标了。以上信息我们就知道要实现功能A,除了A外同时还需要B、C、D(三个子功能)的功能实现逻辑。而这个逻辑可以说是算法,一步算法我们封装一个子函数(不代表一个子功能就一个子涵)——子函数就是在这个功能A函数里面需要引用到的小功能函数。

所以这一步,如果对各功能不熟悉,则要根据分析法思路一步一步找相关功能质料,直到最低层的那个功能。主要了解它的实现需要做什么操作(如硬件连接、通信规则)。这样一来我们就确定了函数的程序框架如下(入口参数暂时不设置,且假设函数不返回值):

针对例子下面是f.h文件封装结构

#ifndef  __f_f

#define  __f_f

#include<xxx.h>//如果还用到什么底层库函数就得全部include一下

#define  write_cmd   0xA0   //如果命令或地址之类的数据太繁杂,

#define read_cmd 0xA1   //为了一眼认出来。最好在头文件处做宏定义

... ...

void f_A(...);      //函数声明

void f_D(...);

void f_C(...);

void f_B(...);

#endif

 

针对例子下面是f.c文件封装结构

#include<f.h>

#include<xxx.h> //如果还用到什么底层库函数就得全部include一下

/*定义函数D*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值