serial.go 695 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package util
  2. import (
  3. "fmt"
  4. "github.com/jacobsa/go-serial/serial"
  5. "log"
  6. )
  7. func openSerial(portName string) {
  8. // 配置串口参数
  9. options := serial.OpenOptions{
  10. PortName: portName, // /dev/ttymxc4 6 3
  11. BaudRate: 9600,
  12. DataBits: 8,
  13. StopBits: 1,
  14. MinimumReadSize: 4,
  15. }
  16. // 打开串口
  17. port, err := serial.Open(options)
  18. if err != nil {
  19. fmt.Printf("err : %s", err.Error())
  20. return
  21. }
  22. // 关闭串口
  23. defer port.Close()
  24. for {
  25. // 读取数据
  26. buf := make([]byte, 128)
  27. n, err := port.Read(buf)
  28. if err != nil {
  29. log.Fatal(err)
  30. }
  31. // 输出读取到的数据
  32. fmt.Printf("Read %s %d bytes: %s \n", portName, n, string(buf[:n]))
  33. }
  34. }