为了能到远方,脚下的每一步都不能少.|

bitterteaer

园龄:3年8个月粉丝:1关注:0

python与stm32串口通讯

win或linux通过串口与嵌入式通讯

准备

  • 插入usb并打开权限
ls /dev/ttyUSB*
sudo chmod 777 /dev/ttyUSB*

python 上位机代码

import serial

# 串口打开函数
def open_ser():
  port = 'com1' # 串口号
  baudrate = 9600 # 波特率
  try:
    global ser
    #ser = serial.Serial(port,baudrate,timeout=0.5)
    ser=serial.Serial("/dev/ttyUSB1",9600,timeout=0.5) #使用USB连接串行口
    if(ser.isOpen()==True):
      print("串口打开成功")
  except Exception as exc:
    print("串口打开异常",exc)
# 数据发送
def send_msg(data):
  try:
    #send_datas = input("请输入要发送的数据\n")
    send_datas = str(data)
    ser.write(str(send_datas).encode("gbk"))
    print("已发送数据:",send_datas)
  except Exception as exc:
    print("发送异常", exc)
# 接收数据
def read_msg():
  try:
    print("等待接收数据")
    while True:
      data = ser.read(ser.in_waiting).decode('gbk')
      if data != '':
        break
    print("已接受到数据:",data)
  except Exception as exc:
    print("读取异常",exc)
# 关闭串口
def close_ser():
    try:
      ser.close()
      if ser.isOpen():
        print("串口未关闭")
      else:
        print("串口已关闭")
    except Exception as exc:
      print("串口关闭异常", exc)
#查找串口
def find_com():
  plist = list(serial.tools.list_ports.comports())

  if len(plist) <= 0:
    print ("The Serial port can't find!")
  else:
    plist_0 =list(plist[0])
    serialName = plist_0[0]
    serialFd = serial.Serial(serialName,9600,timeout = 60)
    print ("check which port was really used >",serialFd.name)

open_ser()
data = input("input\n")
send_msg(data)
read_msg()
close_ser()

本文作者:bitterteaer

本文链接:https://www.cnblogs.com/bitterteaer/p/16533338.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   bitterteaer  阅读(588)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起