最近在用 go 语言操作串口,遇到个问题。 在串口初始化时需要传入一个 COM 口值,例如: cfg := &serial.Config{Name: "COM43", Baud: 115200, ReadTimeout: 3 /毫秒/} 其中的 COM43 是我人工读取后敲进去的。 现在想让 go 程序自动获取电脑所有的 COM 口,选数值最大的那个作为目标口完成初始化,这个在 windows 和 linux 下分别怎么实现呀?
|  |      1TypeErrorNone      2019-08-27 16:42:38 +08:00 啥叫串口? | 
|  |      2rockyou12      2019-08-27 16:48:45 +08:00 linux 的话,直接 cd 进 /dev 看有几个 tty ? | 
|      3binsys      2019-08-27 16:49:24 +08:00 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 | 
|  |      5CEBBCAT      2019-08-27 17:13:18 +08:00 via Android @TypeErrorNone 串口这种东西又不是啥高深概念,一搜就有,阁下看帖就想水有点无聊吧 | 
|  |      6zjyl1994      2019-08-27 17:30:01 +08:00 linux 下 /dev/ttyS 多少或者 ttyUSB 多少,你只要关注一下就知道了( linux 开发板对吧,使用说明书会有的,没有的话去客服要一个,都会写明白的 | 
|      7qile1      2019-08-27 17:32:09 +08:00 via Android 我想问问楼主对应需要 ack 应答这些如何处理的,比如收到串口查询,应答结果给仪器,我用单纯的 if 有时候会卡住,时效性比较低! | 
|  |      10TypeErrorNone      2019-08-27 17:40:42 +08:00 @cqcsdzmt 可以 | 
|  |      12Osk      2019-08-28 01:02:43 +08:00 via Android 搭车问一下:Windows 里面 COMx 和 \\.\COMx 是什么情况,同一个串口,前者需提权才能访问,后者不需提权 | 
|  |      13Pythondr      2019-08-28 02:20:55 +08:00 via Android @TypeErrorNone 没玩过单片机? | 
|      14binsys      2019-08-28 09:20:13 +08:00 @cqcsdzmt file io api,不需要 shell,当然 也支持 shell. https://stackoverflow.com/questions/34229486/how-to-execute-a-shell-built-in-command 多动手 google 全都有的。 | 
|  |      15guanzhangzhang      2019-09-01 16:38:44 +08:00 你可以看看 gobot 的官网,有个 g 开头的 cli 你能扫描串口 |