用户工具

站点工具


ocrobot:kit:arduino_star_kit:tutorial05

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
ocrobot:kit:arduino_star_kit:tutorial05 [2017/10/04 07:08] 弘毅ocrobot:kit:arduino_star_kit:tutorial05 [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +======串口输出======
 + <WRAP center round info 100%>
 +这个例程展示如何用串口输出ASCII表。
 +</WRAP>
 +如果需要输出数据时,可以使用串口输出。在OCROBOT控制板上,USB输出数据其实就是串口输出数据。
 +以MANGO为例,MANGO的USB接口通过一个USB转TTL芯片连接到D0,D1端口。让USB输出或者输入数据时,其实就相当于D0,D1输出或者输入数据。(MANGO下可以断开这种强制的USB与串口连接,后面教程会介绍。)
 +=====代码=====
 +<code cpp>
 +/*
 +  ASCII table
 + 
 + 打印符值的所有字可能的格式
 +*/
 +void setup() { 
 + //初始化串口通讯
 +  Serial.begin(9600); 
 + // 显示标题,以终止线结束
 +  Serial.println("ASCII Table ~ Character Map"); 
 +
 + 
 +// 第一个ascii字符"!" 是数字33
 +int thisByte = 33; 
 +// 你也可以用单引号
 +// 例如'!' 也是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: "); 
 +  // 作为16进制字符串显示
 +  Serial.print(thisByte, HEX);     
 + 
 +  Serial.print(", oct: "); 
 +  // 8进制
 +  Serial.print(thisByte, OCT);     
 + 
 +  Serial.print(", bin: "); 
 +  // 2进制
 +  // 终止线:
 +  Serial.println(thisByte, BIN);   
 + 
 +  //如果到了'~' 或者 126就停止 
 +  if(thisByte == 126) {     // 这里使用 if (thisByte == '~')也是可以的
 +    // 循环
 +    while(true) { 
 +      continue; 
 +    } 
 +  } 
 +  // 到下一个字符
 +  thisByte++;  
 +}
 +</code>
 +=====效果示意图=====
 +{{:ocrobot:kit:arduino_star_kit:2014-5-18_16-36-35.png?nolink|}}
  
 +<WRAP center round tip 100%>
 +begin()
 +
 +将串行数据传输速率设置为位/秒(波特)。与计算机进行通信时,可以使用这些波特率:300,1200,2400,4800,9600,14400,19200,28800,38400,57600或115200。当然,您也可以指定其他波特率 – 例如,引脚0和1和一个元件进行通信,它需要一个特定的波特率。
 +语法:
 + Serial.begin(speed)
 +参数:
 + speed: 位/秒 (波特) – long
 +
 +
 +print()
 +
 +以人们可读的ASCII文本形式打印数据到串口输出。此命令可以采取多种形式。每个数字的打印输出使用的是ASCII字符。浮点型同样打印输出的是ASCII字符,保留到小数点后两位。Bytes型则打印输出单个字符。字符和字符串原样打印输出。Serial.print()打印输出数据不换行,Serial.println()打印输出数据自动换行处理。例如:
 +
 + Serial.print(78)输出为“78”;
 + Serial.print(1.23456)输出为“1.23”;
 + Serial.print(“N”)输出为“N”;
 + Serial.print(“Hello world.”)输出为“Hello world.”。
 +
 +也可以自己定义输出为几进制(格式);可以是BIN(二进制,或以2为基数),OCT(八进制,或以8为基数),DEC(十进制,或以10为基数),HEX(十六进制,或以16为基数)。对于浮点型数字,可以指定输出的小数数位。例如:
 +
 + Serial.print(78,BIN)输出为“1001110”;
 + Serial.print(78,OCT)输出为“116”;
 + Serial.print(78,DEC)输出为“78”;
 + Serial.print(78,HEX)输出为“4E”;
 + Serial.println(1.23456,0)输出为“1”;
 + Serial.println(1.23456,2)输出为“1.23”;
 + Serial.println(1.23456,4)输出为“1.2346”。
 +
 +你可以通过基于闪存的字符串来进行打印输出,将数据放入F()中,再放入Serial.print()。例如 Serial.print(F(“Hello world”)) 若要发送一个字节,则使用 Serial.write()。
 +语法:
 + Serial.print(val)
 + Serial.print(val,格式)
 +参数:
 + val:打印输出的值 – 任何数据类型
 + 格式:指定进制(整数数据类型)或小数位数(浮点类型)
 +返回:
 + 字节 print()将返回写入的字节数,但是否使用(或读出)这个数字是可设定的
 +
 +println()
 +
 +说明:打印数据到串行端口,输出人们可识别的ASCII码文本并回车 (ASCII 13, 或 ‘\r’) 及换行(ASCII 10, 或 ‘\n’)。此命令采用的形式与Serial.print ()相同 。
 +语法:
 + Serial.println(val)
 + Serial.println(val, format)
 +参数:
 + val: 打印的内容 – 任何数据类型都可以
 + format: 指定基数(整数数据类型)或小数位数(浮点类型)
 +返回:
 + 字节(byte)
 + println()将返回写入的字节数,但可以选择是否使用它。
 +
 + print()和println()的区别只有println输出数据后还加了回车。
 +</WRAP>
 +
 +[[ocrobot:kit:arduino_star_kit:main|返回上一级]]

Valid HTML5 Valid CSS Driven by DokuWiki