IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 匿名上位机V7 stm32f407 串口收发协议 -> 正文阅读

[嵌入式]匿名上位机V7 stm32f407 串口收发协议

匿名上位机V7 stm32f407 简单串口收发

主要实现多参数的读写上位机绘图功能


上位机下载:

下载链接: 匿名上位机.
笔者使用匿名上位机V7.1.1.16版本进行开发。


通信协议:

提示:这里可以添加计划学习的时间例如:

这一包数据中,主要有7类数据,第一帧为帧头默认0XAA, 第二帧写入目标地址,这里以灵活帧为例(0XFF),第三帧数据是功能ID在匿名上位机中灵活帧数据对应的协议是(0XF1~0XFA),这里以0XF1为例子,数据长度与发送的数据内容相关联,校验数据以所给的协议为参考即可。
校验示例


STM32F407代码:

基于STM32F407VE开发使用HAL库完成
初始化:
外部时钟使能
上图先开启外部时钟使能
时钟树初始化
时钟树初始化
打开串口
打开串口
使能串口中断
使能串口中断

下面生成代码
添加协议文件.c

//使用匿名7.1上位机协议
/
//数据拆分宏定义,在发送大于1字节的数据类型时,比如int16、float等,需要把数据拆分成单独字节进行发送
#define BYTE0(dwTemp)       ( *( (char *)(&dwTemp)	  ) )     /*!< uint32_t 数据拆分 byte0  */
#define BYTE1(dwTemp)       ( *( (char *)(&dwTemp) + 1) )     /*!< uint32_t 数据拆分 byte1  */
#define BYTE2(dwTemp)       ( *( (char *)(&dwTemp) + 2) )     /*!< uint32_t 数据拆分 byte2  */
#define BYTE3(dwTemp)       ( *( (char *)(&dwTemp) + 3) )     /*!< uint32_t 数据拆分 byte3  */
/**  发送数据缓存 */
unsigned char data_to_send[50]; //用于绘图

unsigned char data_to_send_out[50]; //用于传输

unsigned char data_to_get[50];//接收数据缓存

//上面三个数组只是我个人定义的可根据自己需求进行修改

extern UART_HandleTypeDef huart1; //外部申明 此处需要根据开启的串口进行修改
/*!
  * @brief    Send_Data函数是协议中所有发送数据功能使用到的发送函数
  *
  * @param    dataToSend   :   要发送的数据首地址
  * @param    length       :   要发送的数据长度
  *
  * @return   无
  *
  * @note     移植时,用户应根据自身应用的情况,根据使用的通信方式,实现此函数
  *
  * @see      内部调用
  *
  * @date     2021/5/28 星期二
  */
void ANO_DT_Send_Data(unsigned char *dataToSend , unsigned short length)
{

    /**使用串口正常发送数据,大概需要1.5ms*/
		//UART_PutBuff(UART0, dataToSend, length);     //可以修改不同的串口发送数据
		HAL_UART_Transmit(&huart1,(uint8_t*)dataToSend,length,0xFFFF);//(uint8_t*)aRxBuffer为字符串地址,length为字符串长度,0xFFFF为超时时间 (需要根据开启的串口进行修改)
}
/*!
  * @brief    向上位机发送发送1个int16_t数据
  *
  * @param    data1: 发送给上位机显示波形 (可以自己加)
  *
  * @return   无
  *
  * @note     无
  *
  * @see      ANO_DT_send_int16 ( 1 );
  *
  * @date     2021/5/28 星期二
  */
void ANO_DT_send_int16(short data1 )
{
  unsigned char  _cnt=0;
	unsigned char i = 0;
	unsigned char sumcheck = 0; 
	unsigned char addcheck = 0; 
	
  data_to_send[_cnt++] = 0xAA;      //匿名协议帧头  0xAA
	data_to_send[_cnt++] = 0xFF;
	data_to_send[_cnt++] = 0xF1;      //使用用户协议帧0xF1
	
   data_to_send[_cnt++] = 0;        //1个int16_t 长度 2个字节
	
	data_to_send[_cnt++]=BYTE0(data1);
	data_to_send[_cnt++]=BYTE1(data1);


	data_to_send_out[3] = _cnt - 4;



	for(i=0; i < (data_to_send[3]+4); i++) //数据校验
	{
		
		sumcheck += data_to_send[i]; //从帧头开始,对每一字节进行求和,直到DATA区结束 
		addcheck += sumcheck; //每一字节的求和操作,进行一次sumcheck的累加 
	}; 
	
		data_to_send[_cnt++]=sumcheck;
		data_to_send[_cnt++]=addcheck;
		ANO_DT_Send_Data(data_to_send, _cnt);
}


添加协议文件.h


#ifndef SRC_APPSW_TRICORE_USER_ANO_DT_H_
#define SRC_APPSW_TRICORE_USER_ANO_DT_H_

#include "stdint.h"
#include "main.h"
#include "usart.h"
/*!
  * @brief    向上位机发送发送8个int16_t数据
  *
  * @param    data1 - data8  : 发送给上位机显示波形
  *
  * @return   无
  *
  * @note     无
  *
  * @see      ANO_DT_send_int16(1, 2, 3, 0, 0, 0, 0, 0);
  *
  * @date     2021/5/28 星期二
  */
void ANO_DT_send_int16(short data1 );
#endif /* SRC_APPSW_TRICORE_USER_ANO_DT_H_ */

在对应的位置写如自己需要发送的数据即可,根据自己需求进行适当的修改 就可以实现与匿名上位机的通信。完整的协议文件在 协议文件。 完整工程文件在工程文件

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:23:46  更:2021-08-09 10:24:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:48:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码