# Untitled - By: Administrator - 周四 四月 7 2022
import sensor, image, time
from pyb import UART
from pyb import Pin, Timer, LED
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)
#uart=UART(1,9600) #PA9 txd PA10--rxd 微翻版OPENMV
uart = UART(3, 9600) #正式openmv
uart.init(9600, bits=8, parity=None, stop=1) # init with given parameters timeout_char=1000
clock = time.clock()
g_uart_cmdA_flag=0 # 将变量声明为全局变量,如此才可改变其数值
g_uart_cmdB_flag=0
def Uart_recv(): # 串口接收数据
global g_uart_cmdA_flag
global g_uart_cmdB_flag
if (uart.any()): # 更新串口接收数据
recv_data = eval(str(uart.read()))
print(recv_data)
#uart.write(recv_data)
if ("Rec" in recv_data) :
print("Openmv has recved CMD data.")
if ("cmdA" in recv_data):
g_uart_cmdA_flag = 1
print("Ready for cmdA !")
if ("cmdB" in recv_data):
g_uart_cmdB_flag = 1
print("Ready for cmdB !")
#def tick(timer):
#Uart_recv()
##5ms读取一次检测一次串口,t=5ms f=1/t=200hz
#tim = Timer(2, freq=200) # create a timer object using timer 2 - trigger at 1Hz
#tim.callback(tick) # set the callback to our tick function
adata =10.2
bdata =123
cdata=88.65
ddata=896
while(True):
clock.tick()
img = sensor.snapshot()
Uart_recv()
if g_uart_cmdA_flag ==1 :
# uart.write("loc"+(str)adata+"num"+(str)bdata+"#") # 串口发送
uart.write("adata:%0.2f bdata:%d#"%(adata,bdata))
g_uart_cmdA_flag = 0
if g_uart_cmdB_flag ==1 :
uart.write("cdata:%0.2f ddata:%d#"%(cdata,ddata))
g_uart_cmdB_flag = 0
在这里插入图片描述