Golang笔记:使用serial包进行串口通讯
package main
import (
"fmt"
"github.com/jacobsa/go-serial/serial"
"time"
)
func main() {
// 配置串口参数
options := serial.OpenOptions{
PortName: "/dev/ttyS0", // 串口名称,Linux下通常是/dev/ttyS0或/dev/ttyUSB0等
BaudRate: 9600, // 波特率
DataBits: 8, // 数据位
StopBits: 1, // 停止位
MinimumReadSize: 4, // 最小读取字节数
}
// 打开串口
port, err := serial.Open(options)
if err != nil {
fmt.Println("Error opening port:", err)
return
}
defer port.Close() // 确保在结束时关闭串口
// 写入数据到串口
_, err = port.Write([]byte{0x01, 0x03, 0x00, 0x00, 0x00, 0x01, 0x90, 0x03})
if err != nil {
fmt.Println("Error writing to port:", err)
return
}
// 读取串口数据
buffer := make([]byte, 256) // 创建缓冲区
n, err := port.Read(buffer)
if err != nil {
fmt.Println("Error reading from port:", err)
return
}
fmt.Printf("Received: %x\n", buffer[:n])
}
这段代码演示了如何使用go-serial
包在Go语言中打开串口,进行数据的写入和读取。代码中包含了基本的串口配置参数和错误处理。在实际应用中,你需要根据自己的硬件和通信协议来调整这些参数。
评论已关闭