客户端
package main import ( "bufio" "fmt" "os" "github.com/jacobsa/go-serial/serial" ) func main() { options := serial.OpenOptions{ PortName: "COM3", BaudRate: 9600, DataBits: 8, StopBits: 1, MinimumReadSize: 1, } port, err := serial.Open(options) if err != nil { fmt.Println(err) return } defer func() { _ = port.Close() }() inputReader := bufio.NewReader(os.Stdin) for { input, err := inputReader.ReadString('\n') if err != nil { fmt.Println(err) continue } n, err := port.Write([]byte(input[:len(input)-2])) if err != nil { fmt.Println(err) return } fmt.Printf("You wrote %d bytes: %s\n", n, string(input[:len(input)-2])) } }
服务端
package main import ( "fmt" "github.com/jacobsa/go-serial/serial" ) func main() { options := serial.OpenOptions{ PortName: "COM4", BaudRate: 9600, DataBits: 8, StopBits: 1, MinimumReadSize: 1, } port, err := serial.Open(options) if err != nil { fmt.Println(err) return } defer func() { _ = port.Close() }() for { buf := make([]byte, 32) n, err := port.Read(buf) if err != nil { fmt.Println(err) continue } if n != 0 { fmt.Printf("Read %d bytes: %s\n", n, string(buf)) fmt.Println(buf) buf = append(buf, '\n') n, err = port.Write(buf) if err != nil { fmt.Println(err) continue } fmt.Printf("Wrote %d bytes\n", n) } } }