串行写入的精确时序

时间:2016-09-19 21:05:15

标签: python serial-port pyserial

下面的代码通过串口发送一个字符,等待8毫秒。

import serial
import time
from time import sleep

ser = serial.Serial(
  port='/dev/cu.usbserial-AD01ST7I',\
  writeTimeout = 0,\
  baudrate=115200,\
  parity=serial.PARITY_NONE,\
  stopbits=serial.STOPBITS_ONE,\
  bytesize=serial.EIGHTBITS,\
)

for z in range(5000):
  ser.write('C')
  time.sleep(.008)

使用示波器测量串行端口上的串行活动表明消息每隔~10 ms发送一次。它变化很小 - 有时间隔是8.5毫秒。

Oscilloscope measurement

有没有办法每8毫秒精确发送一条消息?

1 个答案:

答案 0 :(得分:1)

,除非您使用RTOS。有许多因素会影响精度: