Arduino学习(二)

串口通信

在Arduino控制器上,串口都是位于0(RX)和2(TX) 的两个引脚,Arduino的USB口通过一个转换芯片(通常为ATmegal16u2)与这两个串口引脚连接。该转换芯片会通过USB接口在计算机上虚拟出一个用于与Arduino通信的串口。
因此当使用USB线将Arduino与计算机连接时,两者之间便建立了串口连接。通过此连接,Arduino便可与计算机互传数据了。
要想使串口与计算机通信,需要先使用Serial.begin()函数初始化Arduino的串口通信功能,即

Serial.begin(speed);

其中参数speed指串口通信波特率,它是设定串口通信速率的参数。串口通信的双方必须使用同样的波特率方能正常进行通信。

波特率

波特率是一个衡量通信速度的参数,它表示每秒传送的bit的个数。例如9600波特表示每秒发送9600 bit 的数据。通信双方需要一致的波特率才能正常通信。Arduino串口通信通常会使用以下波特率:300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200.
波特率越大,说明串口通信的速率越高。

TX RX

TX和RX是串口通信的引脚.
Serial.read读的是RX针脚对应寄存器的数据,Serial.read运行在主芯片上,读不到USB的数据,只能读转换后的数据
同理Serial.print 是往TX针脚对应寄存器上写的。

连接电脑USB的线为什么可以上传程序,而电源线(DC)无法上传

USB是通用串行总线的协议,现在电脑上多数只有USB口,一般不会有串口,而Arduino使用的是avr芯片,单片机默认都会提供串口通信,所以Arduino为了解决电脑没有串口的问题,使用USB转串口的适配器把USB数据转成串口,然后再接到Arduino的TX和RX口上,USB和RX、TX上的数据是一样的,只是使用的协议不一样而已.

Serial(串行通信)

串行端口用于Arduino和个人电脑或其他设备进行通信。所有Arduino控制器都有至少一个串行端口(也称为UART或者USART)。个人电脑可以通过USB端口与Arduino的引脚0(RX)和引脚1(TX) 进行通信。所以当Arduino的引脚0和引脚1用于串行通信功能时,Arduino的引脚0和引脚1是不能做其他用的。你也可以通过Arduino开发环境软件中的串口监视器来与Arduino 控制器进行串口通信,你只需要点击Arduino IDE软件中的“串口监视器”按钮(如下图所示)就可以打开串口监视器。
在这里插入图片描述

Serial(串行通信)函数

1. Serial.begin()

开启串口,通常置于setup()函数中。
设置电脑与Arduino进行串口通讯时的数据传输速率(每秒传输字节数)。可使用以下速率:300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200。,你也可以根据你所使用的设备而设置其他传输速率。
语法:
Serial.begin(speed)
Serial.begin(speed, config)
参数:
speed:波特率,一般取值9600,115200等。
config:设置数据位、校验位和停止位。默认SERIAL_8N1表示8个数据位,无校验位,1个停止位。

2. Serial.end()

终止串行通讯,让RX 和 TX引脚用于Arduino的输入(INPUT)或输出(OUTPUT)功能。可调用 Serial.begin()重新打开串行通讯。
语法:
Serial.end()

3. Serial.print()

串口输出数据,写入字符数据到串口。
语法:
Serial.print(val)
Serial.print(val, format)
参数:
val: 要发送的数据(任何数据类型)
format: 输出的数据格式。BIN(二进制)、OCT(八进制)、DEC(十进制)、HEX(十六进制)。对于浮点数,此参数指定要使用的小数位数。

4. Serial.println()

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值