用户工具

站点工具


ocrobot:kit:arduino_star_kit:tutorial05

串口输出

这个例程展示如何用串口输出ASCII表。

如果需要输出数据时,可以使用串口输出。在OCROBOT控制板上,USB输出数据其实就是串口输出数据。 以MANGO为例,MANGO的USB接口通过一个USB转TTL芯片连接到D0,D1端口。让USB输出或者输入数据时,其实就相当于D0,D1输出或者输入数据。(MANGO下可以断开这种强制的USB与串口连接,后面教程会介绍。)

代码

/*
  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++;  
}

效果示意图

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输出数据后还加了回车。

返回上一级

ocrobot/kit/arduino_star_kit/tutorial05.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1