《Microduino实战》——3.4 重新认识软件与硬件
本节书摘来自华章出版社《Microduino实战》一 书中的第3章,第3.4节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
3.4 重新认识软件与硬件
我们已经做了两个基本实验,一个是串口的打印,另一个是通过数字I/O控制一个LED。以前从未接触过Arduino或Microduino的读者,自然会有不少疑问。比如在硬件上,会问:Microduino-Core有哪些I/O?能够用来做什么?如何使用?而在源代码上,会问:如何用程序中的函数控制这些I/O?有固定的结构和语法吗?
接下来会详细介绍I/O的功能以及程序代码的基础。
在第2章中已经介绍过Microduino-Core各个引脚的功能,这里针对每个引脚重新梳理一下。具体的功能以及程序中对应的地址如表3-1所示。
进一步认识了硬件接口之后,再看看Arduino程序的基本结构,以及如何用程序控制这些端口。
Arduino的程序结构必须包括setup()和loop(),否则程序无法正常编译,采用的是C或者C++语言。
除了I/O的操作之外,另一项很有用的功能是串口通信。我们常常用它来调试程序,因为从外部或许只能用肉眼观察LED闪烁等一些物理现象,但根本不知道程序在运行的过程中出现了什么情况,计算得到了什么数值,又据此做出了什么样的动作。如果我们观察到的现象不是我们所预想的,问题可能出现在硬件上,比如连接松动或者线序接错了;也可能是程序中一时疏忽,将某个变量赋值错了。这个时候,串口调试就派上用场了。比如在程序关键位置,通过串口打印出一些数据信息,根据这些数据,我们可以判断是否异常,以便定位程序的状态,最终找到问题所在。
下面介绍串口中最常用的函数。
《Microduino实战》——3.4 重新认识软件与硬件相关推荐
- 《Microduino实战》——1.3 开源软件
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.3节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.3 开源 ...
- 《Microduino实战》——3.1 准备开发环境
本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.1 准备 ...
- 《Microduino实战》——1.4 开源硬件
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.4 开源 ...
- 《Microduino实战》——1.2 为什么要开源
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.2节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.2 为什 ...
- 《Microduino实战》——1.1 什么是开源
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 开 ...
- 《Microduino实战》——3.5 I/O操作——现学现用
本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.5节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.5 I/ ...
- 《Microduino实战》——3.2 “Hello World!”—— 开启编程之旅
本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.2 &q ...
- 《Microduino实战》——第1章 开 源 硬 件
本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 开 ...
- 《Microduino实战》——第2章 Microduino
本节书摘来自华章出版社<Microduino实战>一 书中的第2章,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 Microdui ...
最新文章
- 线程:Timer定时器
- Python列表之for循环应用
- python基础笔记_python基础学习笔记(九)
- 冬至日,诚邀你来杭州网易,一起吃着饺子畅聊「B2B增长」
- h5 修改title 微信_微信公众号客服消息不限次数推送如何设置?
- linux的nohup命令的用法。
- java enum 泛型,Java Enum作为Enum中的泛型类型
- Java基础学习总结(131)——项目开发中真的有必要使用Lombok插件么?
- python常见面试题(三)
- 最受欢迎Java数据库访问框架大比拼,你独爱哪一款?
- yii2 获取模块名,控制名,动作方法名
- YUV格式讲解并使用ffmpeg生产YUV文件
- 你可能成不了哪吒,更成不了朴树
- 软件过程的价值观、原则以及实践——从敏捷说起
- CF1070J Streets and Avenues in Berhattan
- textarea的placeholder怎么实现换行-新的方法
- 如何连接并处理 sdf 数据库文件(便捷数据库处理)
- 读《MacTalk·人生元编程》及Mac常用软件
- [生存志] 第73节 勾践隐忍灭吴
- epoll服务器反应堆模型
热门文章
- print()和println()的区别
- 最新人脸识别技术方案
- 使用go获取LDAP的baseDN以及验证登录
- 初识马尔可夫和马尔可夫链
- Eclipse中如何查看使用的JDK版本?
- 英飞凌芯片支持计划第二阶段申请计划(硅麦芯片已开启)
- 庄懂的技术美术入门课系列——学习笔记
- 深度学习DeepLearning
- zookeeper 删除节点时报错java.io.IOException: Packet len4272892 is out of range!
- RLS,LMS以及NLMS三种自适应均衡matlab仿真