本节书摘来自华章出版社《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 重新认识软件与硬件相关推荐

  1. 《Microduino实战》——1.3 开源软件

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.3节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.3 开源 ...

  2. 《Microduino实战》——3.1 准备开发环境

    本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.1 准备 ...

  3. 《Microduino实战》——1.4 开源硬件

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.4 开源 ...

  4. 《Microduino实战》——1.2 为什么要开源

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.2节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.2 为什 ...

  5. 《Microduino实战》——1.1 什么是开源

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 开 ...

  6. 《Microduino实战》——3.5 I/O操作——现学现用

    本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.5节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.5 I/ ...

  7. 《Microduino实战》——3.2 “Hello World!”—— 开启编程之旅

    本节书摘来自华章出版社<Microduino实战>一 书中的第3章,第3.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.2 &q ...

  8. 《Microduino实战》——第1章 开 源 硬 件

    本节书摘来自华章出版社<Microduino实战>一 书中的第1章,第1.1节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第1章 开 ...

  9. 《Microduino实战》——第2章 Microduino

    本节书摘来自华章出版社<Microduino实战>一 书中的第2章,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第2章 Microdui ...

最新文章

  1. 线程:Timer定时器
  2. Python列表之for循环应用
  3. python基础笔记_python基础学习笔记(九)
  4. 冬至日,诚邀你来杭州网易,一起吃着饺子畅聊「B2B增长」
  5. h5 修改title 微信_微信公众号客服消息不限次数推送如何设置?
  6. linux的nohup命令的用法。
  7. java enum 泛型,Java Enum作为Enum中的泛型类型
  8. Java基础学习总结(131)——项目开发中真的有必要使用Lombok插件么?
  9. python常见面试题(三)
  10. 最受欢迎Java数据库访问框架大比拼,你独爱哪一款?
  11. yii2 获取模块名,控制名,动作方法名
  12. YUV格式讲解并使用ffmpeg生产YUV文件
  13. 你可能成不了哪吒,更成不了朴树
  14. 软件过程的价值观、原则以及实践——从敏捷说起
  15. CF1070J Streets and Avenues in Berhattan
  16. textarea的placeholder怎么实现换行-新的方法
  17. 如何连接并处理 sdf 数据库文件(便捷数据库处理)
  18. 读《MacTalk·人生元编程》及Mac常用软件
  19. [生存志] 第73节 勾践隐忍灭吴
  20. epoll服务器反应堆模型

热门文章

  1. print()和println()的区别
  2. 最新人脸识别技术方案
  3. 使用go获取LDAP的baseDN以及验证登录
  4. 初识马尔可夫和马尔可夫链
  5. Eclipse中如何查看使用的JDK版本?
  6. 英飞凌芯片支持计划第二阶段申请计划(硅麦芯片已开启)
  7. 庄懂的技术美术入门课系列——学习笔记
  8. 深度学习DeepLearning
  9. zookeeper 删除节点时报错java.io.IOException: Packet len4272892 is out of range!
  10. RLS,LMS以及NLMS三种自适应均衡matlab仿真