ASCIITable: 演示 Arduino 串口输出的进阶功能
原文地址 - https://www.arduino.cc/en/Tutorial/ASCIITable
ASCII字符表
本例展示了高级的串口打印功能,通过本功能可以在Arduino软件(IDE)的串口监视器上生成一个字符和ASCII值的对应表,值分别用十进制、十六进制、八进制和二进制显示。想了解更多关于ASCII字符的信息,请参看asciitable.com。
硬件需求
Arduino 或 Genuino 开发板
电路
无,但是开发板必须通过串口或者USB口连接到电脑。
代码
程序在setup()等连接上串口以后,会一行一行的打印ASCII表直到最后一个可打印字符。打印完成后,设备进入while结构的死循环状态。关闭和打开Aruino软件(IDE)将会使开发板重启并重新启动程序。
/*
ASCII表 用所有可能的格式输出字节值:
* 简单的二进制值
* ASCII编码的十进制、十六进制、八进制和二进制形式 想了解更多关于ASCII的知识, 参见 http://www.asciitable.com and http://en.wikipedia.org/wiki/ASCII 电路: 不需要外接电路。 编写时间: 2006
作者:Nicholas Zambetti
更新:2012年4月9日
更新者: Tom Igoe
翻译:苏杭
翻译日期:2016年12月14日
本示例代码公布在公用网络上. < http://www.zambetti.com > */
void setup() {
//初始化串口并且等待端口开启:
Serial.begin(9600);
while (!Serial) {
; // 等待串口连接。使用本地的USB端口才需要这样。
} // 输出带有回车符号的标题
Serial.println("ASCII Table ~ Character Map");
} // 第一个看得见的ASCII字符"!"是数字23:
int thisByte = 33;
// 你也可以用单引号来写ASCII字符。
// 例如字符"!"的ASCII值是33,因此你也可以这样写:
//int thisByte = '!'; void loop() {
// 原样输出数值,比如字符的简单二进制形式。串口监视器把所有的字节码显示为ASCII字符,
//因此第一个数字33将显示'!'。
Serial.write(thisByte); Serial.print(", dec: ");
// 用ASCII编码十进制的字符形式输出数值(十进制)。
// 十进制数是Serial.print()和Serial.println()默认的格式,因此不需要做改变 :
Serial.print(thisByte);
// 当然你乐意的话,也可以可以声明以十进制格式输出.
//如果你把下面一句的注释去掉和上面的效果是一样的: // Serial.print(thisByte, DEC); Serial.print(", hex: ");
// 输出十六进制格式的字符串(十六进制):
Serial.print(thisByte, HEX); Serial.print(", oct: ");
// 输出八进制格式的字符串(八进制);
Serial.print(thisByte, OCT); Serial.print(", bin: ");
// 输出二进制形式的字符串(二进制)
// 同时输出回车换行:
Serial.println(thisByte, BIN); // 如果输出了最后一个可视字符 '~' 或 126, 停止:
if (thisByte == 126) { // 你也可以用 if (thisByte == '~') {
// 这个循环一直循环而且什么也不做
while (true) {
continue;
}
}
// 继续下一个字符
thisByte++;
}
输出结果
ASCII Table ~ Character Map
!, dec: 33, hex: 21, oct: 41, bin: 100001
", dec: 34, hex: 22, oct: 42, bin: 100010
#, dec: 35, hex: 23, oct: 43, bin: 100011
$, dec: 36, hex: 24, oct: 44, bin: 100100
%, dec: 37, hex: 25, oct: 45, bin: 100101
&, dec: 38, hex: 26, oct: 46, bin: 100110
', dec: 39, hex: 27, oct: 47, bin: 100111
(, dec: 40, hex: 28, oct: 50, bin: 101000
), dec: 41, hex: 29, oct: 51, bin: 101001
*, dec: 42, hex: 2A, oct: 52, bin: 101010
+, dec: 43, hex: 2B, oct: 53, bin: 101011
,, dec: 44, hex: 2C, oct: 54, bin: 101100
-, dec: 45, hex: 2D, oct: 55, bin: 101101
., dec: 46, hex: 2E, oct: 56, bin: 101110
/, dec: 47, hex: 2F, oct: 57, bin: 101111
0, dec: 48, hex: 30, oct: 60, bin: 110000
1, dec: 49, hex: 31, oct: 61, bin: 110001
2, dec: 50, hex: 32, oct: 62, bin: 110010
3, dec: 51, hex: 33, oct: 63, bin: 110011
4, dec: 52, hex: 34, oct: 64, bin: 110100
5, dec: 53, hex: 35, oct: 65, bin: 110101
6, dec: 54, hex: 36, oct: 66, bin: 110110
7, dec: 55, hex: 37, oct: 67, bin: 110111
8, dec: 56, hex: 38, oct: 70, bin: 111000
9, dec: 57, hex: 39, oct: 71, bin: 111001
:, dec: 58, hex: 3A, oct: 72, bin: 111010
;, dec: 59, hex: 3B, oct: 73, bin: 111011
<, dec: 60, hex: 3C, oct: 74, bin: 111100
=, dec: 61, hex: 3D, oct: 75, bin: 111101
>, dec: 62, hex: 3E, oct: 76, bin: 111110
?, dec: 63, hex: 3F, oct: 77, bin: 111111
@, dec: 64, hex: 40, oct: 100, bin: 1000000
A, dec: 65, hex: 41, oct: 101, bin: 1000001
B, dec: 66, hex: 42, oct: 102, bin: 1000010
C, dec: 67, hex: 43, oct: 103, bin: 1000011
D, dec: 68, hex: 44, oct: 104, bin: 1000100
E, dec: 69, hex: 45, oct: 105, bin: 1000101 ...
另见
- increment, ++
- while()
- serial()
- Dimmer -移动鼠标来改变LED灯的亮度.
- Graph - 传输数据给电脑并且在进程中绘制图形.
- Midi - 穿行传输音频信息.
- MultiSerialMega - 使用Arduino和Genuino Mega的两个可用的串口 .
- PhysicalPixel - 将数据发送到你的开发板,用程序或者Max/MSP来开关.
- ReadASCIIString - 解析一个用逗号分隔的数字型字符串来控制LED的亮度.
- SerialCallResponse - 用问答的方式发送多个数值.
- SerialCallResponseASCII - 用问答的方式发送多个数值,并且在发送前用ASCII码编码.
- SerialEvent - 演示如何使用 SerialEvent()函数.
- VirtualColorMixer - 用程序或者Max/MSP发送多个数值从Arduino到你的电脑.
最终版本编辑2015/07/28 SM
QQ 群
欢迎加入我们的大家庭
点击加入 硬创联盟 Arduino 群号 8580606
翻译:硬创联盟翻译组翻译员 – 苏杭
审核:硬创联盟翻译组技术语文审核 - 神奇海螺,Lepton-华,成都阿杰
ASCIITable: 演示 Arduino 串口输出的进阶功能的更多相关文章
- Arduino 串口输出LM35温度
#include "stdlib.h" float temp = 0.0; float maxtemp = 0.0; float mintemp =100.0; // the se ...
- arduino串口输出问题
- 从0移植uboot(五) _实现串口输出
串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可以将程序运行的情况直接通过串口线输出到屏幕上,对于这种异常重要的功能,uboot原生就提供了支持,但为此我们需要做一些 ...
- Arduino 串口通讯参考笔记 - Serial 类库及相关函数介绍
声明: 本ID发布的所有文章及随笔均为原创,可随意转载,单转载文章必须注明作者 aiyauto 及包含原文出处地址 http://www.cnblogs.com/aiyauto/p/7071712.h ...
- (转) 从0移植uboot(五) _实现串口输出
ref : https://www.cnblogs.com/xiaojiang1025/p/6500520.html 串口作为一种非常简单的通信方式,才是嵌入式系统调试的王道,通过设置串口输出,我们可 ...
- Arduino串口的一些高级用法
1.配置串口通信数据位.校验位.停止位通常我们使用Serial.begin(speed)来完成串口的初始化,这种方式,只能配置串口的波特率.而使用Serial.begin(speed, config) ...
- Arduino 串口的一些高级用法
来源: 1.配置串口通信数据位.校验位.停止位 通常我们使用Serial.begin(speed)来完成串口的初始化,这种方式,只能配置串口的波特率. 而使用Serial.begin(speed, c ...
- Arduino - 串口操作函数与示例代码大全
来源:https://blog.csdn.net/iracer/article/details/50334041 Arduino - 串口操作函数与示例代码大全 本文总结了Arduino常用串口操作函 ...
- TI CC2541的串口输出.
http://blog.csdn.net/feilusia/article/details/47431659 基本上看上面这个博客的. 重点是: 1. 关闭流控, 在npi.h里面, 将 #defin ...
随机推荐
- Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...
- 《深入浅出Node.js》第5章 内存控制(未完)
@by Ruth92(转载请注明出处) 第5章 内存控制 基于无阻塞.事件驱动建立的 Node 服务,具有内存消耗低的优点,非常适合处理海量的网络请求. 内存控制正是在海量请求和长时间运行的前提下进行 ...
- 小夜灯V2.0成本
物料清单: Arduino Nano *1 17.98 HC-05主从机一体蓝牙模块 *1 15.9 RGB灯珠1W大功率带铝基板 *1 3.3 奶白灯罩 *1 32.5 锐澳9cm发光底座 *1 ...
- CSS书写规范
一.CSS书写顺序 1.位置属性(position,top,right,z-index,display,float等) 2.大小(width,height,padding,margin) 3.文字系列 ...
- 【视频演示】FireBase链接已有应用&实时数据库的配置与使用
全程无编辑,一镜到底,一帧未减,带上犯傻的时间全部不到31分钟:Firebase链接与基础功能使用如此之简单,跟我一起动手,从零开始链接Firebase吧~注意: 输入声源为笔记本自带麦克风,所以风扇 ...
- hping原理、安装、使用详解介绍
[原理基础] Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP.UDP.ICMP和RAW ...
- PS中的图像知识
图像处理对于前端工作来说是一个不能回避的问题,ps技术也是我们必备的技能.用法可以在使用中不断的熟练,但针对前端技术本身的一些知识点,需要我们平时不断的积累才能够在使用中不出现问题. 如今的办公,已经 ...
- jQuery 简介
jQuery 简介 jQuery 库可以通过一行简单的标记被添加到网页中. jQuery 库 - 特性 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML ...
- 基于jQuery的email suggest插件
最近项目中有表单提交的地方需要用户填写邮箱,PM(产品经理)和运营都强烈要求在用户填写邮箱的时候出现suggest列表,简化用户输入的填写流程.我考虑了下,这个应该也是经常会用到的功能,细心的朋友可能 ...
- python property详解
Python中有一个被称为属性函数(property)的小概念,它可以做一些有用的事情.在这篇文章中,我们将看到如何能做以下几点: 将类方法转换为只读属性 重新实现一个属性的setter和getter ...