基于python的MSP430实时数据绘图
事实上,我正在使用一个函数生成器,将外部模拟信号输入到MSP430F5438A的ADC 之后,我尝试在我的PC上通过MSP430的UART监控MSP430的ADC数据,这是我用Tera术语完成的 现在我正试图在python上绘制相同的数据(从UART接收数据)(而不是使用tera术语,因为在那里我们无法绘制数据) 我的问题是,在python中,我能够在某个特定的频率范围内(在我的例子中,只有0-10hz)重现信号(函数生成器给出的信号) 但我的要求是再现(0hz-5khz)范围内的信号。如果你想看到不同范围的任何波形,我已经准备好附加它 我的问题是,是否有可能重现最大频率范围(0hz-5khz)??还有什么办法吗 如果你想进一步澄清,我准备给你 我正在附加python代码:基于python的MSP430实时数据绘图,python,clock,uart,msp430,adc,Python,Clock,Uart,Msp430,Adc,事实上,我正在使用一个函数生成器,将外部模拟信号输入到MSP430F5438A的ADC 之后,我尝试在我的PC上通过MSP430的UART监控MSP430的ADC数据,这是我用Tera术语完成的 现在我正试图在python上绘制相同的数据(从UART接收数据)(而不是使用tera术语,因为在那里我们无法绘制数据) 我的问题是,在python中,我能够在某个特定的频率范围内(在我的例子中,只有0-10hz)重现信号(函数生成器给出的信号) 但我的要求是再现(0hz-5khz)范围内的信号。如果你想
import sys
import serial
import numpy as np
import matplotlib.pyplot as plt
from collections import deque
port = "COM14"
baud = 460800
timeout=1
ser = serial.Serial()
ser.port = port
ser.baudrate = baud
ser.timeout = timeout
a1 = deque(([0.0])*1000)
plt.title("Real Time Data Monitoring")
line, = plt.plot(a1)
plt.ion()
plt.xlabel("Time_Period")
plt.ylabel("Amplitude")
plt.ylim([0,300])
plt.grid()
try:
ser.open()
except:
sys.stderr.write("Error opening serial port %s\n" % (ser.portstr) )
sys.exit(1)
while 1:
data = ser.read(3)
reading = int(data)
print(a1)
a1.appendleft((data))
datatoplot = a1.pop()
line.set_ydata(a1)
plt.draw()
plt.pause(0.0001)
我附上了python上接收到的示例数据格式
德克(['066',117',206',108',212',063',117',206',057',130',197',048',138',068',111',188',042',154',178',035',100',216',070',108',218',073',105',214 067',117',208',056',126',207 058',123',204',047',140',190',046',140',140',191 042',152',180',035')
我的ADC配置是
Resolution : 8-bit
ADC12A_CLK : 4 Mhz
Sampling rate : 15094 Samples per second
(Or)
15 ksps
我的UART配置是
波特率:460800
USCI_时钟:12Mhz
提前谢谢