文章目录
- 2 函数的使用
- 1.函数定义(需要带类型)
- 2.函数声明(需要带类型)
- 3.函数调用
- 3 新建文件,使用模块化编程
- 新建xxx.c和xxx.h文件
- xxx.h格式:
- 调用头文件
- 验证代码
- 调用:
- 完整的文件结构如下:
- 验证代码2
- 总结
- 课后练习:SOS求救灯光编写
- 求救信号原理
- 示例代码
2 函数的使用
在模块化编程里,函数使用分为如下三步:
1.函数定义(需要带类型)
返回值 函数名称( 入口参数 )
{
函数要执行的功能
}
@返回值:没有返回值就是void
@函数名称:避开关键词(IDE中标蓝),不重复,非特殊字符随便取
@入口参数:类型+名称,多个参数“,”分开,空就写void
2.函数声明(需要带类型)
返回值 函数名称( 入口参数 );
3.函数调用
函数名称( 入口参数 );调用的时候就只需要入参数,不需要带类型,
3 新建文件,使用模块化编程
新建xxx.c和xxx.h文件
新建xxx.c和xxx.h文件,代表一个功能块。推荐一一对应。
点击新建,默认弹出的是text文件,未定义文件类型,点击保存,存储为math.c,并另存为math.h:
xxx.h格式:
#ifndef __XXX_H
#define __XXX_H
在math.h中加入固定搭配格式。
调用头文件
函数声明…
#endif
xxx.c格式
#include “xxx.h”
函数定义
验证代码
math.h:
#ifndef __MATH_H //if not define
#define __MATH_H
int Add(int parm1,int parm2);
#endif
math.c:
int Add(int parm1,int parm2)
{
return parm1 + parm2;
}
在main.c中加入引用:#include “math.h”。
调用:
添加文件一定要记得引用路径和添加到工程里。
全部保存,并双击图标,将math.c加入工程,
编译完成,自动下载至开发板。打开CDC串口工具,清空数据区,发送数据,得到打印值:
这样操作,主函数代码非常干净,便于大型项目的管理和组织。
完整的文件结构如下:
验证代码2
math.h:
#ifndef __MATH_H //if not define
#define __MATH_H
int Add(int parm1,int parm2); //parm1+parm2
int Sub(int parm1,int parm2); //parm1-parm2
int Mul(int parm1,int parm2); //parm1*parm2
#endif
math.c:
#include "math.h"
int Add(int parm1,int parm2)
{
return parm1 + parm2;
}
int Sub(int parm1,int parm2)
{
return parm1 - parm2;
}
int Mul(int parm1,int parm2)
{
return parm1 * parm2;
}
main.c中调用:
printf("add(10,20)计算结果为: %d\r\n",Add(10,20));+
printf("sub(5,2)计算结果为: %d\r\n",Sub(5,2));
printf("Mul(5,6)计算结果为: %d\r\n",Mul(5,6));
正常执行。
总结
1.熟悉while的循环过程
2.学会函数的使用(定义、声明、调用)
3.学会新建文件,添加文件路径和添加到工程
课后练习:SOS求救灯光编写
求救信号原理
来源:爱问知识人:sos用灯光怎么表示
三短三长三短
SOS作为世界上通用的求救信号,如果用灯光信号来表示,三短亮代表字母S,三长亮代表字母O,再接着的三短亮代表S。
灯的长亮时间是短亮时间的三倍,而短亮时间则与LED两次点亮的间隔时间相同,字母与下一个字母间也有三倍短亮时间的熄灭间隔。
示例代码
//S
while( time < 4 )
{
P22 = 0; //设置低电平 (屠龙刀三板载led)
P24 = 0;
delay_ms(500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
P24 = 1;
delay_ms(500);
time++;
}
delay_ms(1000);
time = 1;
//O
while( time < 4 )
{
P22 = 0; //设置低电平 (屠龙刀三板载led)
P24 = 0;
delay_ms(1500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
P24 = 1;
delay_ms(500);
time++;
}
delay_ms(1000);
time = 1;
//S
while( time < 4 )
{
P22 = 0; //设置低电平 (屠龙刀三板载led)
P24 = 0;
delay_ms(500);
P22 = 1; //设置低电平 (屠龙刀三板载led)
P24 = 1;
delay_ms(500);
time++;
}
delay_ms(1000);
time = 1;
```