最近在用 go 语言操作串口,遇到个问题。 在串口初始化时需要传入一个 COM 口值,例如: cfg := &serial.Config{Name: "COM43", Baud: 115200, ReadTimeout: 3 /毫秒/} 其中的 COM43 是我人工读取后敲进去的。 现在想让 go 程序自动获取电脑所有的 COM 口,选数值最大的那个作为目标口完成初始化,这个在 windows 和 linux 下分别怎么实现呀?
最近在用 go 语言操作串口,遇到个问题。 在串口初始化时需要传入一个 COM 口值,例如: cfg := &serial.Config{Name: "COM43", Baud: 115200, ReadTimeout: 3 /毫秒/} 其中的 COM43 是我人工读取后敲进去的。 现在想让 go 程序自动获取电脑所有的 COM 口,选数值最大的那个作为目标口完成初始化,这个在 windows 和 linux 下分别怎么实现呀?
|
TypeErrorNoneAug 27, 2019
1
啥叫串口?
|
|
rockyou12Aug 27, 2019
2
linux 的话,直接 cd 进 /dev 看有几个 tty ?
|
|
binsysAug 27, 2019
3
Win:
参考 .NET SerialPort https://referencesource.microsoft.com/#System/sys/system/io/ports/SerialPort.cs,6e8f9abfa6f4bdef 读注册表 Linux: 列 /dev/目录,找所有文件名 tty 开头的,大概可能有 ttyS*,ttyGS*,ttyUSB*等。找到你需要的类型的文件,拿到 fd。 剩下的参考: https://github.com/tarm/serial |
|
CEBBCATAug 27, 2019 via Android
5
@TypeErrorNone 串口这种东西又不是啥高深概念,一搜就有,阁下看帖就想水有点无聊吧
|
|
zjyl1994Aug 27, 2019
6
linux 下 /dev/ttyS 多少或者 ttyUSB 多少,你只要关注一下就知道了( linux 开发板对吧,使用说明书会有的,没有的话去客服要一个,都会写明白的
|
|
qile1Aug 27, 2019 via Android
7
我想问问楼主对应需要 ack 应答这些如何处理的,比如收到串口查询,应答结果给仪器,我用单纯的 if 有时候会卡住,时效性比较低!
|
|
TypeErrorNoneAug 27, 2019
10
@cqcsdzmt 可以
|
|
OskAug 28, 2019 via Android
12
搭车问一下:Windows 里面 COMx 和 \\.\COMx 是什么情况,同一个串口,前者需提权才能访问,后者不需提权
|
|
PythondrAug 28, 2019 via Android
13
@TypeErrorNone 没玩过单片机?
|
|
binsysAug 28, 2019
14
@cqcsdzmt file io api,不需要 shell,当然 也支持 shell.
https://stackoverflow.com/questions/34229486/how-to-execute-a-shell-built-in-command 多动手 google 全都有的。 |
|
guanzhangzhangSep 1, 2019
15
你可以看看 gobot 的官网,有个 g 开头的 cli 你能扫描串口
|