学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁

这篇具有很好参考价值的文章主要介绍了学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2 函数的使用

在模块化编程里,函数使用分为如下三步:

1.函数定义(需要带类型)

返回值 函数名称( 入口参数 )
{
函数要执行的功能
}
@返回值:没有返回值就是void
@函数名称:避开关键词(IDE中标蓝),不重复,非特殊字符随便取
@入口参数:类型+名称,多个参数“,”分开,空就写void

2.函数声明(需要带类型)

返回值 函数名称( 入口参数 );

3.函数调用

函数名称( 入口参数 );调用的时候就只需要入参数,不需要带类型,

3 新建文件,使用模块化编程

新建xxx.c和xxx.h文件

新建xxx.c和xxx.h文件,代表一个功能块。推荐一一对应。
点击新建,默认弹出的是text文件,未定义文件类型,点击保存,存储为math.c,并另存为math.h:
学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁,STC32,学习,笔记,单片机,stc32,SOS

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”。

调用:

添加文件一定要记得引用路径和添加到工程里。
学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁,STC32,学习,笔记,单片机,stc32,SOS
全部保存,并双击图标,将math.c加入工程,
学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁,STC32,学习,笔记,单片机,stc32,SOS
编译完成,自动下载至开发板。打开CDC串口工具,清空数据区,发送数据,得到打印值:
学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁,STC32,学习,笔记,单片机,stc32,SOS
这样操作,主函数代码非常干净,便于大型项目的管理和组织。

完整的文件结构如下:

学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁,STC32,学习,笔记,单片机,stc32,SOS

验证代码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));

正常执行。
学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁,STC32,学习,笔记,单片机,stc32,SOS

总结

1.熟悉while的循环过程
2.学会函数的使用(定义、声明、调用)
3.学会新建文件,添加文件路径和添加到工程

课后练习:SOS求救灯光编写

求救信号原理

来源:爱问知识人:sos用灯光怎么表示
三短三长三短
SOS作为世界上通用的求救信号,如果用灯光信号来表示,三短亮代表字母S,三长亮代表字母O,再接着的三短亮代表S。
灯的长亮时间是短亮时间的三倍,而短亮时间则与LED两次点亮的间隔时间相同,字母与下一个字母间也有三倍短亮时间的熄灭间隔。文章来源地址https://www.toymoban.com/news/detail-662605.html

示例代码

		//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;
    ```


到了这里,关于学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 驱动开发 day3 (模块化驱动启动led,蜂鸣器,风扇,震动马达)

    模块化驱动启动led,蜂鸣器,风扇,震动马达并加上Makefile 封装模块化驱动,可自由安装卸载驱动,便于驱动更新(附图) 1.安装模块驱动同时初始化各个设备并使能 2.该驱动会自动创建驱动节点. 3.通过c函数程序输入控制各个设备 4.卸载模块驱动 //编译驱动(注意Makefile的编译到移植

    2024年02月16日
    浏览(32)
  • 【FPGA】时序逻辑电路——基于计数器实现一个以1秒频率闪烁的LED灯

    1 D触发器 分析: 特性:输出端Q只在CK处于上升沿的时候变化 图中波形的形成过程: 当D处于高电平时,CK未处于上升沿时,Q仍处于低电平 当CK来到上升沿,Q需要根据D发生变化,由于D是高电平,所以Q要从低电平变化成高电平 D从高电平变化成低电平,但是此时CK未来到上升沿

    2024年02月09日
    浏览(33)
  • 物联网Lora模块从入门到精通(二) LED灯泡闪烁与呼吸灯

    目录 一、前言 二、实践与代码         1.电亮LED1         2.熄灭LED1         3.翻转LED电平         4.LED1与LED2交替闪烁         5.LED1呼吸灯 三、程序代码         本篇内容属于新大陆物联网Lora模块开发,使用给定的Lora基础例程,并在其基础上开发完成,并可

    2024年02月09日
    浏览(31)
  • 基于STM32CubeMX和keil采用STM32F407的基本定时器中断实现LED闪烁

    定时器有三种,基本定时器,通用定时器,以及高级定时器。 这篇博客以最简单的基本定时器为例,实现LED的闪烁。 后面两种定时器的用法后面再写。 实现功能: TIM6控制LED每隔0.5s变一次状态。 TIM7控制LED1常量2s后熄灭。 因为都是用到LED,所以和上一篇基于STM32CubeMX与keil采

    2024年02月04日
    浏览(47)
  • 大型Android项目架构:基于组件化+模块化+Kotlin+协程+Flow+Retrofit+Jetpack+MVVM架构实现WanAndroid客户端

    前言:苟有恒,何必三更眠五更起;最无益,莫过一日曝十日寒。 之前一直想写个 WanAndroid 项目来巩固自己对 Kotlin+Jetpack+协程 等知识的学习,但是一直没有时间。这里重新行动起来,从项目搭建到完成前前后后用了两个月时间,平常时间比较少,基本上都是只能利用零碎的

    2024年02月09日
    浏览(37)
  • STM32--实现LED闪烁

    目录 使用的开发板是:奋斗版STM32开发板V2​ 一、参考开发手册 二、GPIO功能描述 三、GPIO寄存器概念 2.3.1 端口配置低寄存器(GPIOx_CRL) (x=A..E) 2.3.3 端口输入数据寄存器(GPIOx_IDR) (x=A..E) 四、开始实现LED灯闪烁

    2024年02月09日
    浏览(27)
  • Linux下LED设备驱动开发(LED灯实现闪烁)

    前面我们介绍了Linux设备模型、平台设备驱动、设备树(device tree)、GPIO子系统以及pinctrl子系统等,大家看这篇文章之前需要提前知道的基础都在这篇文章中: Linux设备模型、平台设备驱动、设备树(device tree)、GPIO子系统以及pinctrl子系统介绍 有部分函数没有涉及到的最后会讲解

    2024年02月17日
    浏览(31)
  • Python补充笔记5-模块化、文件

    目录 一、模块 二、模块的导入 三、python中的包​编辑 四、常用的内容模块 五、第三方模块的安装与使用 六、编码格式的介绍 七、文件读写的原理 八、常用的文件打开模式 ​九、文件对象的常用方法 十、with语句​编辑 十一、os模块的常用函数 十二、os.path模块的常用方法

    2024年02月15日
    浏览(25)
  • stm32按键实现LED的闪烁

    首先,需要准备如下硬件设备: STM32F103C8T6单片机开发板 4个LED灯 4个220欧姆电阻 4个按键 接下来,我将讲解如何连接硬件设备。 将4个LED灯连接到STM32单片机的PB0、PB1、PB2、PB3引脚上。 将4个220欧姆电阻连接到PB0、PB1、PB2、PB3引脚上,防止电流过大损坏LED灯。 将4个按键连接到

    2024年02月08日
    浏览(33)
  • 【Python_Selenium学习笔记(五)】基于Selenium模块实现鼠标操作

    为了模拟鼠标操作,Selenium 模块提供了 Actionchains 类,可以模仿人的几乎任何鼠标行为操作; 在此篇文章主要介绍 Actionchains类 的常用方法,使用流程,并以具体的示例进行展示。 perform():执行ActionChains中存储的行为; context_click(on_element=None):点击鼠标右键; double_click(on_

    2024年02月13日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包