arduino——串口通讯(笔记)

arduino——串口通讯(笔记),第1张

Arduino与外部设备通信的方式均属于串行通讯。

串行通讯的概念是相对于并行通信而言的。

(当然目前来说只是概念上的认知。)

arduino硬件集成了串口、IIC、SPI三种常见的的通信方式,掌握了这三种通讯类库的方法,即可与具有响应通信接口的各种设备通信,也可以为基于这些通信方式的传感器或者模块编写驱动程序。

HardwareSerial类库的使用

hard硬

ware器物或者什么

Serial这里是串口或者串行的意思

我们理解arduino和USB接口的简单通信构成了计算机和arduino之间的串口通信,除此之外arduino还可以与其他串口设备进行通信。

TX发送端

RX接收端

通过简单的图可以理解两个设备之间共用电源接地。

实际的arduino板子上的这两个端口为数字端口0和1

1为发送端

0为接收端

板子上有很明显的标志。

首先简单回顾一下数组在arduino的用法。

数据类型 数组名称【数组元素的个数】

例如 int a[5]定义了一个有5个整数型元素数组。

int a[5]={1,2,3,4,5}

int a[5]

a[0]=1a[1]=2a[2]=3a[3]=4a[4]=5

是等效的。

取值方法:

a[0]

当使用print()发送数据时,发送的不是数据本身,而是将数据转换成字符,再转换成对应的ASCII码发送出去,串口见失去接收到ASCII码,则会显示对应的字符。

而当使用write()时,发送的是数据本身,但当串口见失去接收到数据后,会将数值当成ASCII而显示对应的字符。

因此123对应的字符为{。

Linux的arduino中没有端口这个选项,帮您查询到 首先下载CH34x驱动直接解压到你想要的地方右键文件夹打开终端,输入 sudo make会报错,直接注释掉(591, 797, 798),797行的要把if后面的一块注释掉,保存重新 sudo make ,然后 sudo make load再输入一个命令就可以了,sudo chmod 777 /dev/ttyUSB0(/ttyUSB0要换成ArduinoIDE左下角的值)。

一,一点也不诡异,传感器与uno已经有三条线连接了,就是那TX,RX,GND,虽说是串口引脚,但引脚是有电压的,通过串口引脚可以给传感器供电了,就算是传感器不工作,但点个LED还是可以的,是贴片LED灯吧,点亮时需要的电流很小就亮。

二,uno与传感器连接后,向传感器发数据了吗?电脑与传感器连接,可是要发数据的。或另一原因,传感器发回的1,是字符1吗,那是ASCII码呀。而uno判断串口收到1是怎么判断的?是数值1吗?还是字符1,字符1可是要加引号的,应写成

'1' 。这可是不同的。估计是这个原因吧。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7626369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存