为了账号安全,请及时绑定邮箱和手机立即绑定

使用 GO 将二进制整数字节写入串行连接

使用 GO 将二进制整数字节写入串行连接

Go
侃侃无极 2021-07-15 14:01:27
这是否将4(字节00000100)写入串行端口?buf := make([]byte, 4)d, err := connection.Write(buf)因为看起来有些东西正在发送,但是我在另一端期待 4 的代码没有被触发。我有另一种语言的其他代码,将 4 发送到 Arduino,它响应良好。当上面的代码运行时,我可以看到灯闪烁,但不知何故不是我期待的字节。那么如何00000100通过串口发送字节呢?完整代码在这里:package mainimport (  "github.com/tarm/goserial"  "log"  "time")func main() {  config := &serial.Config{Name: "/dev/tty.usbmodem1421", Baud: 9600}  connection, err := serial.OpenPort(config)  if err != nil {    log.Fatal(err)  }  // Wait for Arduino  time.Sleep(5 * time.Second)  // Send the binary integer 4 to the serial port  buf := make([]byte, 4)  _, err = connection.Write(buf)  if err != nil {    log.Fatal(err)  }  // Wait for Arduino  time.Sleep(1 * time.Second)  // Cleanup  connection.Close()}
查看完整描述

1 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

看起来我完全误解了第二个论点make......


buf := make([]byte, 1) // second arg is lenght of array, not a value in the array

binary.PutUvarint(buf, 8) // add my int value to the buffer

connection.Write(buf) // send it!


查看完整回答
反对 回复 2021-07-19
  • 1 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信