我有一个用C语言编写并在Linux上运行的程序,它每隔大约16毫秒从串口设备获取一次流数据。这是一段对时间要求很高的代码,运行良好。另一段代码也实时地绘制这些数据,但它的及时执行对我来说没有数据采集部分那么重要。也就是说,我不想等到所有的绘图和绘图功能都完成后才再次轮询串口。因此,我在考虑让一个单独的线程来完成应用程序的绘图部分,或者让数据采集部分成为单独的线程。当涉及到低级编程时,我真的几乎没有经验,所以有人能给我指出正确的方向吗?我正在使用的伪代码看起来像这样:
int xyz; // global variable
int main() {
do_some_preliminary_s
我有一个Arduino连接到个人电脑,想读它的串行端口。我用com.Readline读取Visual中的串口,但它不会读取所有内容。它松开了通过串行端口发送到Visual代码的2-3行代码。他们会“迷失”。
如果我用更高的波特率(57600)去,它会失去更多的线路.
我用这个读到:
Private Sub com9_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles com.DataReceived
Dim returnStr A
我有一个旧吸尘器的XV-11激光雷达传感器,我想把它用于一个机器人项目。在我的研究中,我看到了一种非常有趣和简单的方法,使用Matplotlib并使用散点显示所有距离。例如(),但当我在RP3上运行这段python代码时,确实会弹出一个Matplotlib窗口,上面显示了所有的距离,但是数据的刷新率太慢,不可能实时查看。我的意思是matplotlib显示器在所有传感器读数上落后了几十秒。我的下一个想法是用下面的显示行自己做一些事情,但我得到了同样的结果:很好的读数,但延迟了很多。
points =[]
plt.ion()
x = dist_mm*np.cos(angle_rad)
y = di
我有一个串口通信类,里面有以下代码(其中只显示了相关部分):
public Form1 m_parent;
private delegate void ProcessPacketDelegate(byte[] packet);
public SerialPort comPort = new SerialPort();
//Constructor code
....setting baudrate, portname etc.
... setting m_parent as the main form
...setting other things
//add an event handle
我有一个微控制器,它通过串口以3 MBaud的速度发送数据。微控制器每8000字节发送一个开始/状态字节。我想让我的python脚本读取所有数据并分析起始字节之间的数据。
我知道Python能够处理3个MBaud,因为代码片段显示了开始字节的正确位置:
ser = serial.Serial('COM3', 3000000, timeout=None)
_RawData = ser.read(100000)
for cnt in range(0, 100000, 1):
#search for start byte and print the position