文章目录
- 一. 匿名上位机介绍
- 二. 匿名协议说明
- 1. 匿名协议官方说明文档
- 2. 协议说明
- 三. 向匿名上位机发送数据(基于Arduino IDE的esp32)
- 四. 运行效果
一. 匿名上位机介绍
匿名上位机官方介绍视频
匿名上位机官方下载
二. 匿名协议说明
1. 匿名协议官方说明文档
官方对于协议的说明文档可以在下载的匿名上位机中打开,是一份PDF文档
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
}