zoukankan      html  css  js  c++  java
  • 树莓派和STM32通过USB和串口通信记录

    不管怎样,为了简便开发,通信选择串口通信。

    推荐文章:https://blog.csdn.net/magnetoooo/article/details/53564797

    推荐测试工具:https://blog.csdn.net/u011625775/article/details/99681560(这个发送数据好像有点问题?)

    采用的方案是python的pyserial。

    pip insatll pyserial
    

    查找可用端口

    硬件连接:stm32使用ch340g的串口输出,接入到树莓派的USB口上。

    通过如下代码查找端口,通过拔插观察实际端口。一般来说,是一个ttyUSB的标号

    python3 -m serial.tools.list_ports
    

    最简测试代码

    进入python3环境后,该代码实现了读取数据(这里stm32端一直在发送数据,接收到数据表示正常)

    发送数据通过dev.write即可,但是需要发送编码数据如:b'xd5xbdxbdxa2STM32xbfxaaxb7xa2xb0xe5(什么什么的)

    import serial
    dev=serial.Serial('/dev/ttyUSB1',115200,timeout=0.5)
    dev.readlines()
    

    最后可以用刚开始提供的测试工具直接测试

    提供一段测试代码

    使用的时候,注意修改COM4为指定的端口即可。这里开了两个线程,进行数据测试。

    额外参阅:https://blog.csdn.net/grubberbin/article/details/96476672

    import serial
    import time
    import threading
    global ser
    
    def thread_recv():
        global ser
        while True:
            read = ser.readall()
            if len(read) > 0:
                print(read)
    
    def thread_send():
        global ser
        while True:
            ser.write('AT+POWER_OFF
    '.encode())
            #print(ser.readline())
            time.sleep(10)
    def  usart_ctrl():
        global ser
        ser=serial.Serial("COM4",115200,timeout=0.5)
        recv_data = threading.Thread(target=thread_recv)
        send_data = threading.Thread(target=thread_send)
        recv_data.start()
        send_data.start()
        
    usart_ctrl()
    

      

    附解码示例代码

    import chardet
    
    s = b'
    xd5xbdxbdxa2STM32xbfxaaxb7xa2xb0xe5 xb4xaexbfxdaxcaxb5xd1xe9
    xd5xfdxb5xe3xd4xadxd7xd3@ALIENTEK
    
    please input the message for communication test..
    '
    print(chardet.detect(s))
    print(s.decode('GB2312'))
    str = b'xe5xaex9dxe9xb8xa1xe5xb8x82'
    print(str.decode('utf-8'))
    

      

  • 相关阅读:
    Appium环境配置
    MongoDB_09——执行计划
    mongoDB_08索引的操作
    MongoDB常用命令
    MongoDB_07_复杂查询
    MongoDB_06_分页查询
    docker-ce 安装
    Kubernetes集群搭建 ver1.20.5
    Deploying Portainer CE in Docker
    mysql常用命令
  • 原文地址:https://www.cnblogs.com/bai2018/p/11890581.html
Copyright © 2011-2022 走看看