go学习(六)串口编程


工具下载

虚拟串口工具

Virtual Serial Port Driver Pro(虚拟串口工具) v6.9汉化破解版[http://www.xue51.com/soft/9349.html]

串口调试助手

Serial Port Utility(友善串口调试助手5.0)[https://www.onlinedown.net/soft/261875.htm]

打开,选择默认存储配置数据文件夹:C:/Users/nix3he/AppData/Roaming/ALITHON/SerialPortUtility/Config

打开两个,一个监控发送串口,一个监控接受串口。

串口知识

参考视频:什么是串口,端口,引脚? - 想啥做啥的回答 - 知乎 [https://www.zhihu.com/question/421382950/answer/1902314669]

并行通信

优点:速度快,一次可以进行多位数据同时传输

缺点:传输n位数据需要n条导线,远距离传输铺设线路成本高

串行通信:USRT和UART

USRT(Universal Synchronous Receiver/Transmitter),同步串行通信。有clock用于同步。

UART(Universal Asynchronous Receiver/Transmitter),异步串行通信。

(1)没有clock同步,设置波特率baud rate进行同步。

发送方与接收方设置同样的波特率即传输速度,例如,常用的115200bps代表每秒钟发送115200个bit,也就是每隔1/115200=8.68微秒就读一个bit。需要两边事先约定好一样的速度发送和接收才能正常,如果你用9600bps的速度接收115200bps发送的信号,则什么都不会收到。

(2)什么时候开始接收数据?

起始位,start bit。

UART总线在没有传输数据时是高电平状态,起始位一来,UART总线电压就会变低电平,当接收端检测到起始位低电压就知道有数据要传过来了。假设我们要透传UART以115200,8,N,1的模式传输一个内容是0x3A的字节,波形如下:0x

115200,8,N,1
“115200”表示通信波特率为 115200,
// 串口通信中通常使用的是异步串口通信,既没有时钟线,所以两个设备要通信,必须要保持一致的波特率,当然,波特率常用值还有 4800、115200 等。
“N”表示的是无校验位,8”表示的是数据位数为 8 位,
“1”表示的是 1 位停止位。
// 串口通讯的一个数据包从起始信号开始,直到停止信号结束。数据包的起始信号由一个逻辑 0 的数据位表示,而数据包的停止信号可由 0.5、 1、 1.5 或 2 个逻辑 1 的数据位表示,只要双方约定一致即可。

串口和并口

串行接口,简称串口,也就是COM接口,是采用串行通信协议的扩展接口。串口的出现是在1980年前后,数据传输率是115kbps~230kbps,串口一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备,目前部分新主板已开始取消该接口。

并行接口,简称并口,也就是LPT接口,是采用并行通信协议的扩展接口。并口的数据传输率比串口快8倍,标准并口的数据传输率为1Mbps,一般用来连接打印机、扫描仪等。所以并口又被称为打印口。

串口教程

go_serial的git地址:https://github.com/tarm/serial

下载下来,vscode打开。发现报红。

// 安装代理
go env -w GOPROXY=https://goproxy.cn,direct
// 开启GO111MODULE,【没用,好像新版本没必要了】
// go env -w -GO111MODULE=on

// 安装mod,生成go.mod文件
go mod init 项目名
// 创建vendor目录存放并下载依赖,自动生成vendor文件夹,地下是所有依赖
go mod vendor

// 安装serial,【有mod vendor自动安装,这步也没必要了】
// go get github.com/tarm/serial