gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:24:34 24 4
gpt4 key购买 nike

这是否向串口写入一个4(字节00000100)?

buf := make([]byte, 4)
d, err := connection.Write(buf)

因为它似乎正在发送一些东西,但我在另一端期望 4 的代码没有被触发。我有另一种语言的其他代码,可以将 4 发送到 Arduino,并且响应良好。当上面的代码运行时,我可以看到指示灯闪烁,但不知何故不是我期望的字节。

那么如何通过串口发送字节00000100呢?

完整代码在这里:

package main

import (
"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()
}

最佳答案

看来我完全误解了 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!

关于binary - 使用 GO 将二进制整数字节写入串行连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21327013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com