Python 实现Serial 与STM32J进行串口通讯

yipeiwu_com6年前Python基础

Python果然是一款非常简明的语言,做东西非常流畅,今天又尝试了一下用Serial做了一个控制台的串口通讯,我用的下位机是STM32F103,搞了一个多小时就成功了,可见Python的能力之强。

说明几点注意,一是Python在windows下的串口号可以用COM来标注,此时序号从1开始,如果自己单独指定序号,则是从0开始。

另外,如果下位机串口通讯设定的非常简单的话,在Python中只需要设定好串口号和波特率即可,其余的均设为默认值。一般来说在单片机或者是嵌入式系统中的串口通讯基本都不需要设定其余的东西,最多还需要设定一个停止位的位数或者是一帧数据多少位,一般都设定为1位和8位,这也都是Python默认好的。

读取字符串需要注意,向串口发送一个字符串,随后在读回并在PC机上显示出来,需要在发送时就要记录字符串长度,否则会阻塞,串口通信将会失败。反正我是失败了很多次。

__author__ = 'freedom'
 
import serial
port = 0
ser = serial.Serial()
ser.setPort(port)
print ser.portstr
baudrate = 115200
ser.setBaudrate(baudrate)
ser.open()
print ser.isOpen()
print ser
while(1):
  datainput = raw_input("Please input the character:\n")
  n = ser.write(datainput)
  data = ser.read(n)
  print data

以上这篇Python 实现Serial 与STM32J进行串口通讯就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python smallseg分词用法实例分析

本文实例讲述了Python smallseg分词用法。分享给大家供大家参考。具体分析如下: #encoding=utf-8 #import psyco #psyco.full()...

在Python中使用Neo4j的方法

在Python中使用Neo4j的方法

Neo4j是面向对象基于Java的 ,被设计为一个建立在Java之上、可以直接嵌入应用的数据存储。此后,其他语言和平台的支持被引入,Neo4j社区获得持续增长,获得了越来越多的技术支持者...

基于Python函数和变量名解析

基于Python函数和变量名解析

1、Python函数 函数是Python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构,用于将相关功能打包并参数化 Python中可以创建4种函数: 1)、全局函数:定义在...

Python语言描述连续子数组的最大和

题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。...

pyqt和pyside开发图形化界面

复制代码 代码如下:#!/usr/bin/env pythonimport sysfrom PyQt4 import QtGui,QtCoreimport httplibfrom url...