请小伙伴有偿在 Linux 下用 C++开发串口通讯的例子程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
tinydebian
V2EX    Linux

请小伙伴有偿在 Linux 下用 C++开发串口通讯的例子程序

  •  
  •   tinydebian 2020-07-02 12:18:14 +08:00 3362 次点击
    这是一个创建于 1928 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,

    一台 Linux 电脑有 2 个串口,现在我们有 Python 程序,可以实现这 2 个串口之间的通讯。

    为了加快处理,希望这个程序用 C++来实现。请问有小伙伴愿意有偿实现吗?

    有意的小伙伴,请邮件: [email protected]
    第 1 条附言    2020-07-03 21:37:58 +08:00
    需要实现个简单的协议,包括 CRC 校验等。

    另外,在实现串口通讯后,可能开 100ms 实时线程,在实时线程里面读串口。
    26 条回复    2021-02-28 20:31:21 +08:00
    lloovve
        1
    lloovve  
       2020-07-02 12:19:47 +08:00 via iPhone
    应该很简单吧
    tinydebian
        2
    tinydebian  
    OP
       2020-07-02 12:25:26 +08:00
    @lloovve 是不复杂啦,你有时间有偿帮助吗?
    azenk
        3
    azenk  
       2020-07-02 12:29:50 +08:00 via Android
    这种程序在 github 上多的是吧,看看我的 https://github.com/AzenkChina/VirtualMeter/blob/master/Devices/buses/Src/vuart1.c 不合适你就自己搜别人的也行啊。
    tinydebian
        4
    tinydebian  
    OP
       2020-07-02 12:34:55 +08:00
    @azenk 谢谢,你愿意邮件联系吗?
    azenk
        5
    azenk  
       2020-07-02 12:51:01 +08:00 via Android
    @tinydebian 邮件联系你了,我有一些用过的程序,因为不是很完整所以没开源,合适的话我可以直接发给你,需要开发的话我未必有时间,最近比较忙。
    koebehshian
        6
    koebehshian  
    &nsp;  2020-07-02 12:53:43 +08:00
    用 go 语言可以吗
    xyjincan
        7
    xyjincan  
       2020-07-02 13:05:55 +08:00
    python 都跑不过串口速度了?
    AngryPanda
        8
    AngryPanda  
       2020-07-02 13:26:35 +08:00 via Android
    go 写过。
    ungrown
        9
    ungrown  
       2020-07-02 14:08:25 +08:00   1
    如果只是数据交换,那么瓶颈应该是串口而不是 python 。
    当然也可能数据处理部分也是 python 写的,而这部分需要提高性能。
    为什么不试试 cython 呢?
    tinydebian
        10
    tinydebian  
    OP
       2020-07-02 14:24:35 +08:00
    @ungrown 你说得很对,是因为其他的数据处理的部分希望用到 C++。cython 不好,希望用 C++。
    opiviqo
        11
    opiviqo  
       2020-07-02 14:26:21 +08:00 via Android
    直接用 minicom
    ungrown
        12
    ungrown  
       2020-07-02 14:27:07 +08:00
    @tinydebian #10
    cython 性能不差的,把类型改成静态的,可以逼近 C,可以只差几倍性能
    shaopu
        13
    shaopu  
       2020-07-02 14:27:25 +08:00
    go 不是飞一样的速度~
    tinydebian
        14
    tinydebian  
    OP
       2020-07-02 15:00:34 +08:00
    @ungrown 还有别的原因,选择 C++。
    niubee1
        15
    niubee1  
       2020-07-02 15:01:01 +08:00
    我有例子
    tinydebian
        16
    tinydebian  
    OP
       2020-07-02 15:06:17 +08:00
    @shaopu 还有其他的原因,选择 C++。例如:在老版本的不同 Linux 环境下(例如:2015 年的),go 的编译器 稳定可靠吗?
    tinydebian
        17
    tinydebian  
    OP
       2020-07-02 15:07:36 +08:00
    @niubee1 你能邮件你的联系方式吗? [email protected]
    Chenamy2017
        18
    Chenamy2017  
       2020-07-02 17:27:21 +08:00
    C++直接使用 Linux 的系统调用接口,操作串口设备文件就可以了。Linux 编程书上都有例子的。
    Chenamy2017
        19
    Chenamy2017  
       2020-07-02 17:28:18 +08:00
    说说预算多少,看看有没有时间和兴趣
    circleee
        21
    circleee  
       2020-07-02 17:46:16 +08:00
    @Chenamy2017 哪个书可以说一下吗?
    tinydebian
        22
    tinydebian  
    OP
       2020-07-02 17:54:47 +08:00
    @Chenamy2017 在这个支持串口之后,还希望支持别的东西。如果你有兴趣,请把你的联系方式邮件给我?
    koebehshian
        23
    koebehshian  
       2020-07-03 09:20:32 +08:00
    @tinydebian go 的编译器直接编译成机器码,设下环境变量 GOOS 和 GOARCH 就行了,如有问题,再设一下 GOARM
    galenzhao
        24
    galenzhao  
       2020-07-06 16:02:33 +08:00
    sniffer ? hook
    tinydebian
        25
    tinydebian  
    OP
       2020-07-07 14:56:26 +08:00
    @galenzhao 你想多了。似乎你是高手。
    commoccoom
        26
    commoccoom  
       2021-02-28 20:31:21 +08:00
    遇到了差不多同样的需求了,不过我们是 RS485 通信,也是用的 Python,但是传感器多了之后,速度有点慢了。不过我想找 C 语言,不会 C++。刚找了 https://sigrok.org/wiki/Libserialport 打算研究下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     915 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 18:54 PVG 02:54 LAX 11:54 JFK 14:54
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86