当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

go-serial

利用 Go 进行串口通讯
授权协议 Apache
开发语言 Google Go
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 岑经纶
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

go-serial 是一个允许在Go中读取和写入串行端口的软件包。它利用Go进行串口通讯。

OS支持

目前该软件包仅适用于 OS X,Linux 和 Windows,它可能只需更新一些常量就可以移植到其他类Unix平台上。

安装

只需使用go get

go get github.com/jacobsa/go-serial/serial

更新:

go get -u github.com/jacobsa/go-serial/serial

使用

设置一个serial.OpenOptions结构,然后调用serial.Open。例如:

    import "fmt"
    import "log"
    import "github.com/jacobsa/go-serial/serial"

    ...

    // Set up options.
    options := serial.OpenOptions{
      PortName: "/dev/tty.usbserial-A8008HlV",
      BaudRate: 19200,
      DataBits: 8,
      StopBits: 1,
      MinimumReadSize: 4,
    }

    // Open the port.
    port, err := serial.Open(options)
    if err != nil {
      log.Fatalf("serial.Open: %v", err)
    }

    // Make sure to close it later.
    defer port.Close()

    // Write 4 bytes to the port.
    b := []byte{0x00, 0x01, 0x02, 0x03}
    n, err := port.Write(b)
    if err != nil {
      log.Fatalf("port.Write: %v", err)
    }

    fmt.Println("Wrote", n, "bytes.")
  • 以下代码实现了 deepin 下监听串口,并获取串口发送的红外传感器、温湿度传感器数据。每 5 min采集一次,一次采集获取10条有效数据封装为数组返回供上层调用。 /* * 2019年软硬件课设周读取人体红外、温湿度传感器信息 */ package main import ( "encoding/hex" "fmt" "github.com/tarm/serial" "strcon

  • 软件介绍 go-serial 是一个允许在Go中读取和写入串行端口的软件包。它利用Go进行串口通讯。 OS支持 目前该软件包仅适用于 OS X,Linux 和 Windows,它可能只需更新一些常量就可以移植到其他类Unix平台上。 安装 只需使用go get:go get github.com/jacobsa/go-serial/serial 更新:go get -u github.com/ja

  • 工作中用到通过golang读取串口数据(modbus-rtu)的方法,在github找到了一个相关的库go-modbus(github.com/dpapathanasiou/go-modbus)。 在这用库开始用的时候没有问题,当对接另外,一个厂家设备时,出现问题。原因是第一个厂家的产品parityMode 是false,而go-modbus所引用的serial串口通讯包goserial(gith

  • 之前对Golang的面向对象理解的不是很深刻。在实际项目中,有遇到这样的情况,才真正理解了面向对象编程带来的好处。 项目是这样的:需要写一个串口服务程序,用来收发数据。 我先选了一个比较简陋的库,可能后续会换。因此需要写一些通用的代码,这样后续换库的时候,可以不用对服务程序进行任何代码修改。 设计了一个接口SerialOperation,包含了一些串口操作的基本方法,我的串口服务程序要用到的方法。

  • 1. 插入华为e261 [root@root]# usb 1-1.3: usbfs: process 919 (3g-modem) did not claim interface 0 before use usb 1-1.3: USB disconnect, address 3 usb 1-1.3: new full speed USB device using s3c2410-ohci and

  •   第一步、下载串口通信包 命令行输入命令: go get github.com/tarm/goserial 没有提示表示下载成功, 否则会提示下载失败的原因。 然后就可以在go代码中导入如下包: github.com/tarm/goserial   第二步、串口通信代码实现 //project main.go package main import ( "fmt" "string

 相关资料
  • 我有一个小时的时间。 lastUpdate是这样的类型字符串:“20190925141100”我尝试解析last使用RFC3339类型更新并获取小时。但是,系统返回 t= 0001-01-01 00:00:00 0000 。我的问题在时间。解析?我错过了什么?

  • 在上面的例子中,我们演示了一下如何去触发执行一个外部的进程。我们这样做的原因是我们希望从Go进程里面可以访问外部进程的信息。但有的时候,我们仅仅希望执行一个外部进程来替代当前的Go进程。这个时候,我们需要使用Go提供的exec函数。 package main import "syscall" import "os" import "os/exec" func main() { // 本例中

  • 问题内容: 我有一个具有以下目录结构的go Project 我正在尝试从login.go访问功能test1。这是我所做的 但是我总能得到。我是新来的。谁能帮我得到这个错误的原因? 问题答案: 没有,Go中没有相对导入。 您应该考虑使用GOPATH来使用Abs路径: GOPATH环境变量指定工作空间的位置。在开发Go代码时,很可能需要设置唯一的环境变量。首先,创建一个工作区目录并相应地设置GOPAT

  • 问题内容: http://golang.org/ref/spec#Comparison_operators Go支持字符串比较,没有任何特殊功能。Go运行时是否在后台进行工作以比较字符串文字? 问题答案: 如下面的程序集转储所示,在进行短路检查以查看两个操作数是否为相同的内存字符串(第11行)之后,将字符串比较从运行时委托给函数(第17行): 除非您在编译器或运行时上工作,否则不要太在意您:只需使

  • 串行外设接口(SPI)总线是一种串行通信系统,最多使用四根导线,通常为三根。 一根导线用于数据接收,一根用于数据发送,一根用于同步,另一根用于选择与之通信的设备。 它是全双工连接,这意味着数据同时发送和接收。 最大波特率高于I2C通信系统。 板SPI引脚 SPI使用以下四条线 - SCK - 这是由主机驱动的串行时钟。 MOSI - 这是主机驱动的主输出/从机输入。 MISO - 这是主机驱动的主

  • 此示例侦听来自串行端口的字节。 收到后,电路板会将击键发送回计算机。 发送的按键比接收的按键高一个,因此如果从串行监视器发送“a”,您将从连接到计算机的板上收到“b”。 “1”将返回“2”,依此类推。 Warning - 使用Keyboard.print()命令时,Leonardo,Micro或Due板接管计算机的键盘。 为确保在使用此功能运行草图时不会失去对计算机的控制,请在调用Keyboard