Arduino模块化编程

news/2024/11/30 20:48:07/

当用Arduino做复杂工程项目时,程序难免会变得很大。这时候要修改个别参数或函数的时候会变得麻烦,简而言之,项目程序管理难度增高了,程序代码维护会变得困难。这时候,就产生了将一个ino文件分解成多个功能相对独立的源文件,这样就便于针对性的管理代码了。这就是模块化编程。
模块化编程,首先明确的是,安卓项目文件夹内,必须包含1个ino,1个.h文件,多个.cpp文件。
在这里插入图片描述
文件介绍
关于.ion文件: 必须要有。这个是创建项目后,保存即可生成。用来存放setup和loop的主要程序;
关于.h文件: 必须要有。没有这个,关联不了.cpp文件。所有.cpp文件都应包含这个头文件;
函数的声明,应当在.h里写好,这样可以省去cpp中函数的先后排序。因为ion里是可以乱序的,但是cpp不允许函数乱序!
关于.cpp文件: 不能是.c文件。c文件可以直接改后缀来使用;
经验1: 最好每个文件都包含 #include “Arduino.h” 和 #include “config.h”,不需要的文件再注释掉,避免遗漏;
最终效果
在这里插入图片描述
代码示例
main.ino
主程序,它无需包含Arduino.h头文件声明,自带了。但是需要声明config.h用来关联;
在这里插入图片描述
config.h
配置关联的头文件。除了.ion外,都应声明Arduino.h,否则一些指令API无法识别;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
好了,经过这么分拆改造后,一个很大的安卓程序,就变成好几个模块化的.h+.cpp组成的程序了,
下次项目需要哪个,就编辑哪个就是了。


http://www.ppmy.cn/news/363257.html

相关文章

批量压缩和修复Access数据库 Batch Access Database Compactor Crack

批量压缩和修复Access数据库 Batch Access Database Compactor 快速压缩和修复访问数据库。它是一个批处理Access数据库压缩程序,可以在不安装Office的情况下压缩和修复Access数据库。 Batch Access数据库压缩程序是一种软件工具,正如其标题所示&#x…

Qt学习之旅 - QTableWidget控件其他控件设置图标

文章目录 设置列数设置水平表头设置行数设置正文设置QTableWidget表格不可被选中、不可编辑设置表格中某个单元格不可被选中 防止越界int转QString其他控件Scroll Area按键 添加UI设置图标主窗口图标状态栏上显示图标使用QtCreator //QTableWidget控件 //设置列数 ui->table…

xlnx 官方 镜像升级代码

组合 固件分析 yyds // SPDX-License-Identifier: MIT /** Xilinx Zynq MPSoC Firmware layer** Copyright (C) 2021 Xilinx, Inc.** Vikram Sreenivasa Batchali <bvikramxilinx.com>*/#include <fcntl.h> #include <mtd/mtd-user.h> #include <stdio.…

什么是原型设计?入门最全讲解指南

原型设计在产品开发和用户体验领域扮演着至关重要的角色&#xff0c;产品经理通过画产品原型图&#xff0c;可以让需求可视化&#xff0c;进而快速测试和验证产品可行性&#xff0c;为后续推动产品研发提供坚实可靠的依据。 本文将深入探讨什么是原型设计&#xff0c;原型设计…

Unity 安装负责音频的 wwise

很多游戏的音频用的是 wwise 先下载 https://www.audiokinetic.com/zh/download 安装的时候要选sdk 就是20g的那个 然后运行 选择unity 可以看到这个界面 好&#xff0c;现在开始要安装离线包 直接项目里点 第二个 装好后 他会提示你 无法找到unity安装的地址 1 打开你的 …

第八章实验题汇总

7-1 求一年中的天数 实验八 结构体与其他构造类型 一、实验目的 掌握结构体变量的定义和引用。掌握结构体数组和结构体指针的使用。培养使用结构体解决实际问题的能力。 二、实验内容 1、编写程序&#xff0c;在主函数中输入年月日&#xff0c;利用days函数计算该天是本年…

【二等奖方案】系统访问风险识别「QDU」团队解题思路

第十届CCF大数据与计算智能大赛&#xff08;2022 CCF BDCI&#xff09;已圆满结束。大赛官方竞赛平台DataFountain&#xff08;简称DF平台,官号统称DataFountain 或DataFountain数据科学&#xff09;正在陆续释出各赛题获奖队伍的方案思路。 本方案为【系统访问风险识别】赛题…

LeetCode-100题(Hot) 32. 最长有效括号 [Java实现] [极速]

给你一个只包含 ( 和 ) 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 示例 1&#xff1a; 输入&#xff1a;s "(()" 输出&#xff1a;2 解释&#xff1a;最长有效括号子串是 "()" 动态规划yyds 设 dp[s.le…