前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >树莓派和STM32通过USB和串口通信记录

树莓派和STM32通过USB和串口通信记录

作者头像
嘘、小点声
发布2019-11-20 17:15:07
3.1K0
发布2019-11-20 17:15:07
举报
文章被收录于专栏:嘘、小点声嘘、小点声

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

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

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

采用的方案是python的pyserial。

代码语言:javascript
复制
pip insatll pyserial

查找可用端口

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

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

代码语言:javascript
复制
python3 -m serial.tools.list_ports

最简测试代码

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

发送数据通过dev.write即可,但是需要发送编码数据如:b'\xd5\xbd\xbd\xa2STM32\xbf\xaa\xb7\xa2\xb0\xe5(什么什么的)

代码语言:javascript
复制
import serial
dev=serial.Serial('/dev/ttyUSB1',115200,timeout=0.5)
dev.readlines()

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

提供一段测试代码

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

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

代码语言:javascript
复制
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\r\n'.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()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 查找可用端口
  • 最简测试代码
  • 提供一段测试代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档