openmv串口打包发送数据

2023-11-13

 openmv端

import time
from pyb import UART
import ustruct

uart = UART(3, 19200)
uart.init(19200,8,None,1)

def send_data(d):
    global uart;
    data = ustruct.pack("<bbhb",      #b为1byte h为2byte
                   0x2C,                      #帧头1
                   0x12,                      #帧头2
                   int(d), 
                   0x5B)
    uart.write(data); 




while(True):
    send_data(5)
    time.sleep_ms(1000)

stm32端

uint8_t pData[20];
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
	HAL_UART_Transmit_IT(&huart1, pData, strlen(pData));

	HAL_UARTEx_ReceiveToIdle_IT(&huart3, pData, sizeof(pData));
}

使用3号串口接收openmv的数据,1号串口打印

通过串口助手得到的数据是 2C 12 05 00 5b 而不是 2c 12 00 05 5b顺序是反的,需要在32端进行处理才可以得到真实数据,处理过程如下,

If(pData[0] == 0x2C && pData[1] == 0x12&&pData[4] == 0x5b){//验证帧头帧尾
	int16_t num = 0;//使用2byte的int类型接收不能用32位,因为你发送的本来就是16位的
	num = pData[3] << 8;
	num = pData[2];
	//这样就可以接收16位(short类型)有符号数
}

这样num就是所发送的数据了

完整代码

int16_t derta_x = 0;
uint8_t pData[20];
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size)
{
	HAL_UART_Transmit_IT(&huart1, pData, strlen(pData));
	if(pData[0] == 0x2C && pData[1] == 0x12)
	{
		derta_x = pData[3] << 8;
		derta_x += pData[2];
		uint8_t s[6] = {0};
		memset(s,0,sizeof(s));
		sprintf(s,"%d",derta_x);
		//HAL_UART_Transmit_IT(&huart1, s, sizeof(s));
	}

	HAL_UARTEx_ReceiveToIdle_IT(&huart3, pData, sizeof(pData));
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openmv串口打包发送数据 的相关文章

随机推荐

  • 2.6 矩阵的初等变换

    文章目录 初等变换 行 列 定理 等价 性质 初等方阵 初等方阵与初等变换的关系 三种初等方阵的行列式 逆矩阵 定理 初等矩阵的作用 定理 A可逆条件总结 初等变换法求逆矩阵 初等行变换法 只做行变换 参考 初等变换 行 列 下面是三种初等
  • (5)Qt中的日期和时间

    QDate 日期对象格式化 d 没有前导零的日子 1 to 31 dd 前导为0的日子 01 to 31 ddd 显示 缩写 周一 周二 周三 周四 周五 周六 周日 dddd 显示 完整 星期一 星期二 星期三 星期四 星期五 星期六 星
  • 快速转载他人CSDN博客到自己博客中

    1 右键页面 选择审查元素 2 进入HTML代码页面 选择article content 如何快速找到article content 以谷歌浏览器为例子 鼠标右击 选择检查 点击小箭头 并把鼠标移动到文章内容中 看到baidu pl 点击下
  • 使用 JMeter 完成常用的压力测试

    JMeter 完成常用的压力测试 文档选项 将此页作为电子邮件发送 拓展 Tomcat 应用 下载 IBM 开源 J2EE 应用服务器 WAS CE 新版本 V1 1 摘自 http www 360doc com showWeb 0 0 2
  • C++基础之四个默认函数(构造,析构,拷贝构造,赋值运算符重载)

    文章目录 一 构造函数 构造函数的默认值 赋值方法 二 析构函数 三 拷贝构造函数 四 赋值运算符重载函数 一 构造函数 类的构造函数是类的一种特殊的成员函数 它会在每次创建类的新对象时执行 构造函数的名称与类的名称是完全相同的 并且不会返
  • A State-of-the-Art Survey on Deep Learning Theory and Architectures论文翻译分析

    A State of the Art Survey on Deep Learning Theory and Architectures 摘要 近年来 深度学习在各种应用领域取得了巨大成功 机器学习这一新领域发展迅速 已应用于大多数传统应用领
  • (超详细、带图带源码)Nacos注册中心的搭建与测试

    前言 本系列是从头开始进行学习Nacos的相关知识 从相关概念到业务开发等等 本篇是第三篇 主要知道为什么需要注册中心 为什么选择Nacos作为注册中心和Nacos作为注册中心的快速搭建 入门篇 阿里Nacos系列 为什么要选择Nacos和
  • 密码学技术在区块链系统中的应用

    密码学技术是区块链数据核心技术 P2P网络协议 共识机制 密码学技术 账户与存储模型 中核心的技术点 区块链主要用到的密码算法有哈希算法和加密算法 加密又包括对称性加密和非对称性加密两个概念 区块链系统里面一般常用到的是非对称加密 本文首先
  • 02-neo4j的基本命令

    1 插入节点 插入一个Person类别的节点 且这个节点有一个属性name 属性值为Andres CREATE n Person name 梁川川 CREATE n Person name 谢静静 CREATE n Person name
  • MySql数据库基础--常用函数&视图

    常用函数 日期函数 获取当前日期 select NOW 获取指定日期的日部分 select day now 获取指定日期的月部分 SELECT MONTH NOW 获取指定日期的n年部分 SELECT YEAR NOW date forma
  • Mysql锁

    文章目录 1 概述 2 分类 3 全局锁 4 表级锁 5 行级锁 1 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制 在数据库中 除传统的计算资源 CPU RAM I O 的争用以外 数据也是一种供许多用户共享的资源 如何保证数据
  • 班级学生成绩统计管理系统---(C语言简易版)

    include
  • ViewPager2滑动页面滑动到最后再次滑动跳转到新页面 When swipe to left at the last page, jump to new page

    代码如下 package com example hrminiapp import androidx appcompat app AppCompatActivity import androidx viewpager2 widget Vie
  • MatConvNet的简单介绍和手写识别运用

    1 MatConvNet的简介 MatConvNet是一个实现卷积神经网络 CNN 的MATLAB工具箱 用于计算机视觉应用 它简单 高效 并且可以运行和学习最先进的CNN 许多用于图像分类 分割 人脸识别和文本检测的预训练CNN都有提供
  • Java - JUC -常用的并发工具类

    Condition Condition是JUC里面多线程协调通信的工具类 可以让一些线程一起等待条件即 Condition 只有当满足条件时 线程才会被唤醒 类似于 wait notify 在Condition中也有类似的实现 public
  • 数据压缩学习实验(四)LZW压缩算法的C++实现及其效率分析

    实验目的 掌握词典编码的基本原理 阅读C语言实现的LZW算法并用C 按自己理解实现LZW解码器并分析编解码算法 以及LZW算法对不同文件的压缩效果 LZW算法原理 关于更具体的图解LZW编解码可以参考 超级简单的数据压缩算法 LZW算法 编
  • ajax获取图片二进制,ajax 请求二进制流 图片

    ajax 请求二进制流图片 var url bootPATH server images 1 png var xhr new XMLHttpRequest xhr open GET url true xhr responseType blo
  • 人脸关键点检测和头部姿态估计数据集生成

    接上篇 人脸关键点检测和头部姿态估计数据集整理 1 借助于OpenPose生成人脸关键点和头部姿态 使用链接 https github com TadasBaltrusaitis OpenFace wiki Command line arg
  • 小白都能看懂 XAMPP的下载安装配置详细教程(含拒绝访问坑)

    话不相瞒 当初为了在XAMPP Apache MySQL PHP PERL 里面配置phpwind 我在卸载与安装之间来回了不下10次 但是我的phpwind始终还是安装不成功 我可能是招坑体质 真的很无奈 最终 我放弃了phpwind 废
  • openmv串口打包发送数据

    openmv端 import time from pyb import UART import ustruct uart UART 3 19200 uart init 19200 8 None 1 def send data d globa