1、代碼
//project main.go
package main
import (
"fmt"
"strings"
serial "github.com/tarm/goserial"
)
const MAXRWLEN = 8000
func main() {
cfg := &serial.Config{Name: "COM1", Baud: 9600, ReadTimeout: 3 /*毫秒*/}
iorwc, err := serial.OpenPort(cfg)
if err != nil {
fmt.Println(err)
return
}
defer iorwc.Close()
buffer := make([]byte, MAXRWLEN)
//發命令之前清空緩沖區
num, err := iorwc.Read(buffer)
if err != nil {
fmt.Println(err)
return
}
//發命令數據類型為[]byte
num, err = iorwc.Write([]byte("AT\r\n"))
if err != nil {
fmt.Println(err)
return
}
var tmpstr string = ""
for i := 0; i < 3000; i++ {
num, err = iorwc.Read(buffer)
if num > 0 {
tmpstr += fmt.Sprintf("%s", string(buffer[:num]))
}
//查找讀到信息的結尾標志
if strings.LastIndex(tmpstr, "\r\nOK\r\n") > 0 {
break
}
}
//打印輸出讀到的信息
fmt.Println(tmpstr)
return
}
2、在vscode控制台下執行如下代碼
go mod init github.com/tarm go get github.com/tarm/goserial
3、編譯運行

