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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步