STM32串口重定义与匿名上位机显示波形
封装了串口调试代码,并且可以通过匿名上位机显示实时波形,也可以通过USB模拟串口实现。
CubeMX配置如下:
简单来说,就是啥也不用配置,默认打开Asynchronous即可。
对了,需要在Keil的魔术棒里面打开该选项:
相关代码如下:
QFDebug.c
copy
/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : QFDebug.c * @brief : QFDebug驱动库 * @author :「千樊」 * @time : 2023/03/14 * @update :2023/08/28 ****************************************************************************** * @attention * * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "QFDebug.h" /* Private variables ---------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* USER CODE END PV */ /* Function definition -------------------------------------------------------*/ /* USER CODE BEGIN FD */ /** * @Function name QF_Debug_SendData * @Introduce 向匿名上位机发送数据 * @Return 读取到的数据 */ void QF_Debug_SendData(int32_t Data1, float Data2){ uint32_t _Count=0,Sum = 0,SumCheck = 0; uint8_t TxBuff[14] = {0}; TxBuff[_Count++]=0xAA; TxBuff[_Count++]=0xFF; TxBuff[_Count++]=0xF1; //自定义帧1 TxBuff[_Count++]=0; //这是len位,后面 _cnt-4来赋值 TxBuff[_Count++]=BYTE0(Data1); TxBuff[_Count++]=BYTE1(Data1);//数据部分 TxBuff[_Count++]=BYTE2(Data1);//数据部分 TxBuff[_Count++]=BYTE3(Data1);//数据部分 TxBuff[_Count++]=BYTE0(Data2); TxBuff[_Count++]=BYTE1(Data2);//数据部分 TxBuff[_Count++]=BYTE2(Data2);//数据部分 TxBuff[_Count++]=BYTE3(Data2);//数据部分 TxBuff[3] = _Count-4;//长度位 for(uint8_t i=0;i<_Count;i++){ Sum += TxBuff[i]; SumCheck += Sum; } TxBuff[_Count++] = Sum; TxBuff[_Count++] = SumCheck; HAL_UART_Transmit(&huart1, TxBuff, _Count, 0xFFFF); } /* USER CODE END FD */ /************************ (C) COPYRIGHT 「千樊」 *****END OF FILE****/
QFDebug.h
copy
/* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : QFDebug.h * @brief : Header for QFDebug.c file. * This file provides code for the configuration * of the QFDebug instances * @author : 「千樊」 * @time : 2023/03/14 * @update :2023/08/28 ****************************************************************************** * @attention * * ****************************************************************************** */ /* USER CODE END Header */ /* Define to prevent recursive inclusion -------------------------------------*/ #ifndef __QFDEBUG_H_ #define __QFDEBUG_H_ /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "main.h" #include "usart.h" #include "stdio.h" #include "string.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN PT */ #define BYTE0(DataTemp) (*( char *)(&DataTemp)) //取出int型变量的低字节 #define BYTE1(DataTemp) (*((char *)(&DataTemp) + 1)) //取存储在此变量下一内存字节的内容,高字节 #define BYTE2(DataTemp) (*((char *)(&DataTemp) + 2)) #define BYTE3(DataTemp) (*((char *)(&DataTemp) + 3)) /* USER CODE END PT */ /* Exported functions prototypes ---------------------------------------------*/ /* USER CODE BEGIN FP */ /** * @Function name QF_DebugPrintf * @Introduce Debug输出函数 * @Return NULL */ #define QF_DebugPrintf(format,...){\ char DebugTempString[200];\ sprintf(DebugTempString,format,##__VA_ARGS__);\ HAL_UART_Transmit(&huart1, (uint8_t*)DebugTempString, strlen(DebugTempString), 0xFFFF);\ HAL_Delay(20);\ } /* USER CODE END FP */ /* USER CODE BEGIN EFP */ void QF_Debug_SendData(int32_t Data1, float Data2); /* USER CODE END EFP */ #endif /* __QFDEBUG_H_ */ /************************ (C) COPYRIGHT 「千樊」 *****END OF FILE*************/
使用方法还需要教嘛,如下:
普通的串口打印用法
copy
QF_DebugPrintf("LCD Init Finish\r\n");
匿名上位机显示用法
copy
while(1){ for(uint16_t i=0;i<1000;i++){ QF_Debug_SendData(i,0); } }
匿名上位机配置
在连接设置里配置串口、COM号、波特率:
之后打开协议解析
点击高级收码设置
按照如下配置即可
点击波形显示
打开之后进入波形设置,点击用户数据波形,点击确定,勾选两个用户自定义默认数据。
之后在主界面的右下角点击打开连接即可显示波形
本文作者:千樊
本文链接:https://www.cnblogs.com/lesterbor/p/17952585
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
转载请注明出处
改编代码请注明原作者
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步