这是否将4
(字节00000100
)写入串口?
buf := make([]byte, 4)
d, err := connection.Write(buf)
因为似乎正在发送某些内容,但我的另一端的代码却没有被触发。我有另一种语言的其他代码,它向Arduino发送一个4,它响应很好。当上面的代码运行时,我可以看到指示灯闪烁,但不管怎么说,它不是我期待的字节。
那么如何通过串口发送字节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()
}
答案 0 :(得分:0)
看起来我完全误解了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!