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、編譯運行