import sensor, image, time
from pyb import UART
from pyb import Pin, Timer, LEDimport resensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000)uart=UART(1,115200)  #PA9 txd   PA10--rxd 微翻版OPENMV接口PA9和PA10就好。
#uart = UART(3, 9600)  #正式openmv的接口P4和P5
uart.init(115200, bits=8, parity=None, stop=1) # init with given parameters timeout_char=1000
clock = time.clock()#def tick(timer):#Uart_recv()
##5ms读取一次检测一次串口,t=5ms f=1/t=200hz
#tim = Timer(3, freq=200)      # create a timer object using timer 2 - trigger at 1Hz
#tim.callback(tick)          # set the callback to our tick functiong_uart_cmdA_flag=0   # 将变量声明为全局变量,如此才可改变其数值
g_uart_cmdB_flag=0
#*********************************************************************************************
#串口接收函数的定义
def Uart_recv():  # 串口接收数据global g_uart_cmdA_flagglobal g_uart_cmdB_flagif (uart.any()):   # 更新串口接收数据recv_data = eval(str(uart.read()))  #接收读取的字符串print(recv_data)#uart.write(recv_data)if ("&" in recv_data) :  #如果接收的字符串中有&号。注意,这个不是第一个字符串,只要有&就行,可以修改下,检查帧头print("Openmv has recved CMD data.")if ("lightA" in recv_data): #如果接收字符串有light1,比如&light1print(len(recv_data))g_uart_cmdA_flag = 1print("Ready for light 1!")
## &lightA0 或者&lightA99 提取A后面的数据,必须是正数,后面不能加换行符号,否则长度改变
## 字符串的下标计数从0开始,它是一个标记特殊的list(数据结构会讲到)if len(recv_data)>8:ddd=(int(recv_data[7])-48)*10ddd=ddd+(int(recv_data[8])-48)print(ddd)elif len(recv_data)==8:ddd=(int(recv_data[7])-48)print(ddd)if ("lightB1" in recv_data):#如果接收字符串有B,比如&Bg_uart_cmdB_flag = 1print("Ready for B!")
#*********************************************************************************************
#定义两个数据,测试发送
adata =10.2
bdata =123
#定义两个数据,测试发送
cdata=88.65
ddata=896
while(True):clock.tick()img = sensor.snapshot()Uart_recv() #主函数中不断检测,可以在串口中断中进行接收,或者是开辟一个定时器,定时5ms-10ms检查一次这个函数(这方法好像有问题,定时器的),if g_uart_cmdA_flag ==1  :  #命令A的回应# uart.write("loc"+(str)adata+"num"+(str)bdata+"#")   # 串口发送uart.write("adata:%0.2f,bdata:%d\r\n"%(adata,bdata)) #发送字符串,字符串中包括了数据,数据可以根据检测得到,浮点数或者是整数g_uart_cmdA_flag = 0if g_uart_cmdB_flag ==1  : #命令B的回应uart.write("cdata:%0.2f,ddata:%d\r\n"%(cdata,ddata))#发送字符串,字符串中包括了数据,数据可以根据检测得到,浮点数或者是整数g_uart_cmdB_flag = 0time.sleep(100)

OPENV接收和发送串口的数据相关推荐

  1. openmv串口数据 串口助手_第三课使用pyserial来接收和发送串口数据

    1.python的库非常多,功能同样十分强大,在现有的库的情况下,我们没有必要去重复造轮子,拿来用就可以了,在这里我选了pyserial库. 安装pyserial,使用pip工具,在cmd界面输入:p ...

  2. 如何在Node.js的httpServer中接收前端发送的arraybuffer数据

    最近使用了protobuf进行数据交互,发送在node.js接收前端的二进制数据出现了数据错误等问题.后来发现思路上面的问题,在req.on('data',()=>{})事件中的处理不适当才引发 ...

  3. Android客户端通过TCP接收服务器端发送的数据

    引言 因为我确实不懂TCP通信这一块儿,最近项目中要实现客户端接收服务器端发送过来的数据(这个数据是int型的,范围是0~360,而且服务器端用C语言写的,每一秒发送一次,客户端只需要不断接收就好了) ...

  4. msp430g2553串口接受数据_MSP430G2553串口通讯 发送接收

    数据发送代码: void UartPutchar(unsigned char c) { while(!(IFG2 & UCA0TXIFG));  //待发送为空 UCA0TXBUF=c; IF ...

  5. 【嵌入式】——串口实验——实现芯片串口收发数据,按键中断串口发送数据,串口接收数据中断来控制LED亮/灭

    实验目的: 实现芯片串口收发数据,按键中断串口发送数据:按下按键,向串口发送数据,并通过虚拟终端显示出来: 串口接收数据中断来控制LED亮/灭:通过串口助手向MCU发送数据,"A" ...

  6. GD32F303RET6 串口空闲中断+DMA数据发送接收+环形缓冲区方式保存数据

    GD32F303RET6 DMA 通道映射关系 串口 源文件 #include "uart.h" #include "stdio.h" #include &qu ...

  7. 串口调试助手C++源代码 可接收发送串口数据 带接收Echo回环到发送的功能

    串口调试助手C++源代码 可接收发送串口数据 带接收Echo回环到发送的功能 使用说明介绍 1.功能介绍: 简单地实现了串口通信的功能,主要有发送窗口和接收窗口组成.该代码注释详细,并带有说明文档,适 ...

  8. 上位机开发C#语言:模拟STC串口助手接收单片机发送数据

    题目概述: 设计一个模拟STC串口助手,通过串口进行接收或发送数据. STC串口助手: 编程: using System; using System.Collections.Generic; usin ...

  9. python3.6串口编程实例_Python3 串口接收与发送16进制数据包的实例

    Python3 串口接收与发送16进制数据包的实例 如下所示: import serial import string import binascii s=serial.Serial('com4',9 ...

最新文章

  1. 【 Verilog HDL 】函数(function)与任务(task)简单介绍
  2. php获取citypicker的值,城市选择city-picker
  3. hihocoder 1343 : Stable Members【拓扑排序】
  4. deepin 使用cuda硬件解码
  5. mysql 缓存优缺点_MySQL查询缓存的优缺点
  6. 表达式求值(from leetcode 241)
  7. 如何改变Delphi的快捷键 - DELPHI
  8. MATLAB绘图函数ezplot入门详解
  9. 天刀 服务器状态,12月11日服务器例行维护公告(已完成)
  10. 华山行-西安生活的小记录
  11. CDN基础知识-CNAME、加速域名、源站地址与回源host之间的关系
  12. 如何使用KALI攻击“恶意网站“实验
  13. 知识付费小程序源码可开流量主
  14. 解决 Chrome 浏览器地址栏字体发虚模糊
  15. 离散数学实验报告四——图的应用
  16. html5网页制作实训日志,网页制作实训日志X.doc
  17. 基于RFM模型对借贷App用户分层分析案例
  18. 《MySQL 8从零开始学(视频教学版)》简介
  19. Telnet是什么意思?与SSH有啥区别?
  20. 有关指令集架构与微架构的一些知识

热门文章

  1. vrep教程(十一)通过rosInterface控制vrep中的机械臂
  2. C# 飞行棋小游戏 (控制台应用)
  3. python 实现录音pcm格式功能
  4. 什么是DCDC电源电涌,来源是哪里
  5. 联想3850 X5服务器添加内存之后红屏
  6. 11、16支足球队随机分组
  7. 前端开发的工具化与工程化
  8. 很容易混淆的URL和URI
  9. TIA portal v14怎么安装?
  10. 汽车网络安全渗透测试