收藏官网首页
查看: 25036|回复: 1

[问答] 串口通信:Arduino和计算机间按位通讯

34

主题

37

帖子

318

积分

中级会员

Rank: 3Rank: 3

积分
318
跳转到指定楼层
楼主
发表于 2016-12-29 18:52:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
串口通信(Serial Communication)是arduino和计算机间按位进行数据传输的一种最基本的方式。
使用3根线完成
地线,GND
发送,Tx
接收 ,Rx
主要参数
波特率:通信速度,表示每秒钟传送的位(bit)的个数
数据位
停止位
奇偶校验位


Arduino 串口
USB转串口
PC端:串口
Arduino端:USB
串口引脚
RX:Pin 0
TX:Pin 1
串口数目
Arduino MEGA和Arduino 2560:4个
其余:1个
串口初始化函数
Serial.begin(speed)
speed: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200
通常在 setup() 函数里调用


Arduino 串口输出

将数据从Arduino传输到PC
TX  串口转USB  PC端软件串口监视软件
Arduino IDE自带串口监视软件
也可以用其它软件进行接收:Flash, Processing, Director, vvvv等
串口输出函数
Serial.print(val), Serial.println(val)
输出ASCII码(后者多一个回车换行)
Serial.print(val, format) , Serial.println(val, format)
按指定格式输出(后者多一个回车换行)


Serial.print(val) 实例

Serial.print(78)
输出"78"
Serial.print(1.23456)
输出"1.23"
Serial.print(byte(78))
输出“N” (N的ASCII码值为78))
Serial.print('N')
输出"N"
Serial.print("Hello world.")
输出"Hello world."



Arduino 串口输入

串口队列(Buffer)
PC和Arduino间的缓冲区
串口输入函数
Serial.available()
返回值:当前可读的数据数目
Serial.read()
如果串口没有数据可读,返回 -1
如果串口有数据可读,返回第一个字符,并从串口队列中取出
Serial.peek()
如果串口没有数据可读,返回-1
如果串口有数据可读,返回第一个字符,但不从串口队列取出,因此下次还能读到
Serial.flush()
清空串口队列




3

主题

253

帖子

432

积分

中级会员

Rank: 3Rank: 3

积分
432
沙发
发表于 2016-12-30 19:25:20 | 只看该作者
学习了,点赞
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表