亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python 讀取串口數(shù)據(jù),動(dòng)態(tài)繪圖的示例

 更新時(shí)間:2019年07月02日 10:21:22   作者:happyliuliming  
今天小編就為大家分享一篇Python 讀取串口數(shù)據(jù),動(dòng)態(tài)繪圖的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

最近工作需要把單片機(jī)讀取的傳感器電壓數(shù)據(jù)實(shí)時(shí)在PC上通過曲線顯示出來,剛好在看python, 就試著用了python 與uart端口通訊,并且通過matplotlib.pyplot 模塊實(shí)時(shí)繪制圖形出來。

1. 廢話少說,上圖

因?yàn)闆]有UI,運(yùn)行時(shí)需要在提示符下輸入串口相關(guān)參數(shù),com端口,波特率...

代碼如下:

#-*- coding: utf-8 -*-
 
# 串口測(cè)試程序
import serial
import matplotlib.pyplot as plt
import numpy as np
import time
import re
 
 
# User input comport and bundrate
comport = input('Please input comport (like COM3) for your connected device: ')
baudrate = input('Please input baudrate (like 9600) for your connected device: ')
bytes = input('Please input bytes type of uart data (1->1 byte, 2->2 bytes): ')
bytes = int(bytes)
print('You selected %s, baudrate %d, %d byte.' % (comport, int(baudrate), bytes))
 
serialport = serial.Serial(comport, int(baudrate), timeout=1, parity=serial.PARITY_EVEN, rtscts=1)
if serialport.isOpen():
	print("open success")
else:
	print("open failed")
 
plt.grid(True) # 添加網(wǎng)格
plt.ion()	# interactive mode
plt.figure(1)
plt.xlabel('times')
plt.ylabel('data')
plt.title('Diagram of UART data by Python')
t = [0]
m = [0]
i = 0
intdata = 0
data = ''
count = 0
 
while True:
	if i > 300:  # 300次數(shù)據(jù)后,清除畫布,重新開始,避免數(shù)據(jù)量過大導(dǎo)致卡頓。
		t = [0]
		m = [0]
		i = 0
		plt.cla()
	count = serialport.inWaiting()
	if count > 0 :
		if (bytes == 1):
			data = serialport.read(1)
		elif (bytes == 2):
			data = serialport.read(2)
		if data !='':
			intdata = int.from_bytes(data, byteorder='big', signed = False)
			print('%d byte data %d' % (bytes, intdata))
			i = i+1
			t.append(i)
			m.append(intdata)
			plt.plot(t, m, '-r')   
			# plt.scatter(i, intdata)
			plt.draw()
 
	plt.pause(0.002)

目前功能比較簡(jiǎn)單,但是發(fā)現(xiàn)一個(gè)問題,但單片機(jī)送出數(shù)據(jù)速度很快時(shí), python plot 繪圖會(huì)明顯卡頓。

為解決此問題,已經(jīng)用C# 重新做了個(gè)winform UI, 使用chart控件來繪圖。

以上這篇Python 讀取串口數(shù)據(jù),動(dòng)態(tài)繪圖的示例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Selenium 安裝和簡(jiǎn)單使用的實(shí)現(xiàn)

    Selenium 安裝和簡(jiǎn)單使用的實(shí)現(xiàn)

    這篇文章主要介紹了Selenium 安裝和簡(jiǎn)單使用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 詳談python3 numpy-loadtxt的編碼問題

    詳談python3 numpy-loadtxt的編碼問題

    下面小編就為大家分享一篇詳談python3 numpy-loadtxt的編碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python實(shí)現(xiàn)最短路徑問題的方法

    Python實(shí)現(xiàn)最短路徑問題的方法

    本篇章主要介紹圖的最短路徑問題,包括Dijkstra算法和Floyd算法.并用Python代碼實(shí)現(xiàn),需要的朋友可以參考下
    2021-06-06
  • Pycharm如何添加源與添加庫(kù)

    Pycharm如何添加源與添加庫(kù)

    這篇文章主要介紹了Pycharm如何添加源與添加庫(kù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python基于select實(shí)現(xiàn)的socket服務(wù)器

    Python基于select實(shí)現(xiàn)的socket服務(wù)器

    這篇文章主要介紹了Python基于select實(shí)現(xiàn)的socket服務(wù)器,實(shí)例分析了Python基于select與socket模塊實(shí)現(xiàn)socket通信的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • Python中在腳本中引用其他文件函數(shù)的實(shí)現(xiàn)方法

    Python中在腳本中引用其他文件函數(shù)的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狿ython中在腳本中引用其他文件函數(shù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Python3使用 GitLab API 進(jìn)行批量合并分支

    Python3使用 GitLab API 進(jìn)行批量合并分支

    這篇文章主要介紹了Python3使用 GitLab API 進(jìn)行批量合并分支的思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 詳解Python之unittest單元測(cè)試代碼

    詳解Python之unittest單元測(cè)試代碼

    本篇文件主要介紹了詳解Python之unittest測(cè)試代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • 最新評(píng)論