匿名助手安装
匿名助手可以通过匿名科创官网给的链接https://gitee.com/anotc/AnoAssistant进行下载并安装。
匿名助手上位机的使用
数据连接
匿名助手可以选择串口连接或UDP连接。如果选择串口连接,对串口进行配置,打开通信连接。如果按钮由红色变成绿色则显示成功连接。
基本收发
匿名助手在连接成功后,基本收发功能和其他上位机使用基本类似。它的特色在于可以选择显示时间和自动换行,更清晰的显示。
灵活数据
首先需要选择帧ID,添加数据。其次,命名数据名称和数据类型。
数据波形
数据波形的显示,前提在于根据通信协议进行发送数据才可以显示出来。首先添加波形,在“设”中选择数据源和颜色。如果灵活数据中定义了数据名称,可以在列表中找到并添加。
数据波形显示下面的图标可以根据个人需要进行选择使用,鼠标放在图标上就可以显示图标的功能。在使用数据波形时需要保证自动刷新功能开启才可以显示数据的更新。
STM32与匿名通信
通信协议
根据匿名科创给的通信协议可以看到帧头为0xAB,源地址和目标地址针对灵活数据可以随意填写。功能码是选择数据源,针对灵活数据可以选择0xF1~0xFA。数据长度是两个字节。
通信代码
#include "niming.h"
#include "main.h"
#include "usart.h"
uint8_t data_to_send[100];
//通过F1帧发送2个uint16类型的数据
void ANO_DT_Send_F1(uint16_t _a, uint16_t _b)
{
uint8_t _cnt = 0;
uint16_t i = 0;
uint8_t sumcheck = 0;
uint8_t addcheck = 0;
uint16_t flen = data_to_send[4] + data_to_send[5] * 256;
data_to_send[_cnt++] = 0xAB;//帧头
data_to_send[_cnt++] = 0x00;//源地址
data_to_send[_cnt++] = 0xFF;//目标地址
data_to_send[_cnt++] = 0xF1;//功能码
data_to_send[_cnt++] = 0x04; //数据长度
data_to_send[_cnt++] = 0x00;
//单片机为小端模式-低地址存放低位数据,匿名上位机要求先发低位数据,所以先发低地址
data_to_send[_cnt++] = BYTE0(_a);
data_to_send[_cnt++] = BYTE1(_a);
data_to_send[_cnt++] = BYTE0(_b);
data_to_send[_cnt++] = BYTE1(_b);
for ( i = 0; i < (flen+6); i++)
{
sumcheck += data_to_send[i];//和校验
addcheck += sumcheck;//附加校验
}
data_to_send[_cnt++] = sumcheck;
data_to_send[_cnt++] = addcheck;
HAL_UART_Transmit_DMA(&huart1,data_to_send,_cnt);//这里是串口发送函数
}
ifndef NIMING_H
#define NIMING_H
#include "main.h"
//需要发送16位,32位数据,对数据拆分,之后每次发送单个字节
//拆分过程:对变量dwTemp 去地址然后将其转化成char类型指针,最后再取出指针所指向的内容
#define BYTE0(dwTemp) (*(char *)(&dwTemp))
#define BYTE1(dwTemp) (*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp) (*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp) (*((char *)(&dwTemp) + 3))
void ANO_DT_Send_F1(uint16_t, uint16_t _b);
void ANO_DT_Send_F2(float _a, float _b);
#endif