利用ESP32(Arduino IDE)向匿名上位机发送欧拉角

2024-05-28 02:36

本文主要是介绍利用ESP32(Arduino IDE)向匿名上位机发送欧拉角,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 一. 匿名上位机介绍
  • 二. 匿名协议说明
    • 1. 匿名协议官方说明文档
    • 2. 协议说明
  • 三. 向匿名上位机发送数据(基于Arduino IDE的esp32)
  • 四. 运行效果

一. 匿名上位机介绍

匿名上位机官方介绍视频

匿名上位机官方下载
在这里插入图片描述

二. 匿名协议说明

1. 匿名协议官方说明文档

官方对于协议的说明文档可以在下载的匿名上位机中打开,是一份PDF文档
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 协议说明

这里假设我们想向上位机发送计算出来的欧拉角参数

  1. 首先了解匿名协议的数据格式
    在这里插入图片描述
  2. 了解完基本数据格式,找到文档中我们要上传欧拉角的数据帧格式
    在这里插入图片描述

三. 向匿名上位机发送数据(基于Arduino IDE的esp32)

#include <SimpleFOC.h>// 用于数据转换
#define BYTE0(dwTemp) (*(char *)(&dwTemp))
#define BYTE1(dwTemp) (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp) (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp) (*((char *)(&dwTemp) + 3))static uint16_t a = 0;void usart1_niming_report(uint16_t a, uint16_t b, uint16_t c, uint8_t fu)
{unsigned char send_buf[13];unsigned char cnt=0; send_buf[cnt++]=0XAA;  //帧头send_buf[cnt++]=0XFF;  //功能字send_buf[cnt++]=0X03;  //功能字send_buf[cnt++]=7;  //数据长度//原始数据,这里代表的是计算出的欧拉角参数send_buf[cnt++]=BYTE0(a);send_buf[cnt++]=BYTE1(a);send_buf[cnt++]=BYTE0(b);send_buf[cnt++]=BYTE1(b);send_buf[cnt++]=BYTE0(c);send_buf[cnt++]=BYTE1(c); send_buf[cnt++]=BYTE0(fu);// 计算校核位unsigned char sc = 0;unsigned char ac = 0;for(int i=0; i<send_buf[3] + 4; i++){sc += send_buf[i];ac += sc;}send_buf[cnt++]=sc;send_buf[cnt++]=ac;// 串口发送数据Serial.write(send_buf, sizeof(send_buf));
}void setup() 
{Serial.begin(115200);  //设置串口通讯波特率
}void loop() 
{// 像上位机发送自定义的欧拉角参数usart1_niming_report(a, a+100, a+200, 0);a+=100; // 角度+1度delay(50);  // 延时50ms
}

四. 运行效果

在这里插入图片描述

这篇关于利用ESP32(Arduino IDE)向匿名上位机发送欧拉角的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1009300

相关文章

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

如何使用C#串口通讯实现数据的发送和接收

《如何使用C#串口通讯实现数据的发送和接收》本文详细介绍了如何使用C#实现基于串口通讯的数据发送和接收,通过SerialPort类,我们可以轻松实现串口通讯,并结合事件机制实现数据的传递和处理,感兴趣... 目录1. 概述2. 关键技术点2.1 SerialPort类2.2 异步接收数据2.3 数据解析2.

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Qt实现发送HTTP请求的示例详解

《Qt实现发送HTTP请求的示例详解》这篇文章主要为大家详细介绍了如何通过Qt实现发送HTTP请求,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、添加network模块2、包含改头文件3、创建网络访问管理器4、创建接口5、创建网络请求对象6、创建一个回复对

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

arduino ide安装详细步骤

​ 大家好,我是程序员小羊! 前言: Arduino IDE 是一个专为编程 Arduino 微控制器设计的集成开发环境,使用起来非常方便。下面将介绍如何在不同平台上安装 Arduino IDE 的详细步骤,包括 Windows、Mac 和 Linux 系统。 一、在 Windows 上安装 Arduino IDE 1. 下载 Arduino IDE 打开 Arduino 官网