V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
cqcsdzmt
V2EX  ›  Go 编程语言

go 语言操作串口

  •  
  •   cqcsdzmt · 2019-08-27 16:32:01 +08:00 · 5153 次点击
    这是一个创建于 1915 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在用 go 语言操作串口,遇到个问题。 在串口初始化时需要传入一个 COM 口值,例如: cfg := &serial.Config{Name: "COM43", Baud: 115200, ReadTimeout: 3 /毫秒/} 其中的 COM43 是我人工读取后敲进去的。 现在想让 go 程序自动获取电脑所有的 COM 口,选数值最大的那个作为目标口完成初始化,这个在 windows 和 linux 下分别怎么实现呀?

    15 条回复    2019-09-01 16:38:44 +08:00
    TypeErrorNone
        1
    TypeErrorNone  
       2019-08-27 16:42:38 +08:00
    啥叫串口?
    rockyou12
        2
    rockyou12  
       2019-08-27 16:48:45 +08:00
    linux 的话,直接 cd 进 /dev 看有几个 tty ?
    binsys
        3
    binsys  
       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
    binsys
        4
    binsys  
       2019-08-27 16:50:51 +08:00
    @binsys 编辑器自动加的链接有问题 应该包括逗号后面的文字
    CEBBCAT
        5
    CEBBCAT  
       2019-08-27 17:13:18 +08:00 via Android
    @TypeErrorNone 串口这种东西又不是啥高深概念,一搜就有,阁下看帖就想水有点无聊吧
    zjyl1994
        6
    zjyl1994  
       2019-08-27 17:30:01 +08:00
    linux 下 /dev/ttyS 多少或者 ttyUSB 多少,你只要关注一下就知道了( linux 开发板对吧,使用说明书会有的,没有的话去客服要一个,都会写明白的
    qile1
        7
    qile1  
       2019-08-27 17:32:09 +08:00 via Android
    我想问问楼主对应需要 ack 应答这些如何处理的,比如收到串口查询,应答结果给仪器,我用单纯的 if 有时候会卡住,时效性比较低!
    cqcsdzmt
        8
    cqcsdzmt  
    OP
       2019-08-27 17:36:38 +08:00
    @qile1 ack 应答这些倒不用,go 语言的的串口目前接收的话只有个 read 方法。
    cqcsdzmt
        9
    cqcsdzmt  
    OP
       2019-08-27 17:37:55 +08:00
    @binsys linux 中,go 语言可以调用 shell 语句吗?
    TypeErrorNone
        10
    TypeErrorNone  
       2019-08-27 17:40:42 +08:00
    @cqcsdzmt 可以
    mengzhuo
        11
    mengzhuo  
       2019-08-27 22:30:12 +08:00
    @cqcsdzmt 还有 USB HID 驱动呢
    Osk
        12
    Osk  
       2019-08-28 01:02:43 +08:00 via Android
    搭车问一下:Windows 里面 COMx 和 \\.\COMx 是什么情况,同一个串口,前者需提权才能访问,后者不需提权
    Pythondr
        13
    Pythondr  
       2019-08-28 02:20:55 +08:00 via Android
    @TypeErrorNone 没玩过单片机?
    binsys
        14
    binsys  
       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 全都有的。
    guanzhangzhang
        15
    guanzhangzhang  
       2019-09-01 16:38:44 +08:00
    你可以看看 gobot 的官网,有个 g 开头的 cli 你能扫描串口
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1566 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 68ms · UTC 17:13 · PVG 01:13 · LAX 09:13 · JFK 12:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.