go语言串口通信的实现

第一步、下载串口通信包

命令行输入命令: 
go get github.com/tarm/goserial
 
没有提示表示下载成功,
否则会提示下载失败的原因。 
 
然后就可以在go代码中导入如下包: 
github.com/tarm/goserial

第二步、串口通信代码实现

package main
 
import (
    "fmt"
    "strings"
 
    "github.com/tarm/goserial"
)
 
const MAXRWLEN = 8000
 
func main() {
 
    cfg := &serial.Config{Name: "COM8", Baud: 115200, 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
}

    原文作者:天崖人
    原文地址: https://www.jianshu.com/p/e8cbcd0d8f3c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞