通过STM32F407的串口输出运行状态信息

这篇博客介绍了如何通过STM32F407的串口利用DMA来实时输出运行状态信息,方便调试。通过定义`DrvDebugInfoPrint()`函数,可以在需要的地方调用来打印调试信息,简化了调试过程。
摘要由CSDN通过智能技术生成

调试的时候,通过IDE查看状态是最常用的手段,但如果不断地把运行过程信息通过串口输出来,也会是一种好办法。所以创建新项目后,可以先将调试信息输出功能写好,再慢慢做写其他代码,正所谓工欲善其事必先利其器嘛。
功能的实现非常简单,就是通过串口的TX把信息print出来,使用DMA传输可以降低MCU负担,为了简化,甚至把初始化也放在print函数中,在需要输出的地方直接调用DrvDebugInfoPrint(),例如在LED任务里调用:DrvDebugInfoPrint(“LED Start to flash!”);
头文件:
/* DrvUartTool, V1.0, 2018-7-4, Yangwb ****************************************/
/* Use USART1_TX:PA9, DMA2_Stream7, DMA_Channel_4 *****************************/
/* 
set USE_DEBUG_INFO_AT_UART = 1 to use this module; 0 to disable, then the
function DrvDebugInfoPrint() define as null.
module need'n init, DrvDebugInfoPrint() auto call init function.
Example: when LED task start, DrvDebugInfoPrint("LED start to flash!").
*/

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __DrvDebug_H
#define __DrvDebug_H
/* Private functional switch -------------------------------------------------*/
#define USE_DEBUG_INFO_AT_UART 1
#if USE_DEBUG_INFO_AT_UART == 1
/* Private define ------------------------------------------------------------*/
#define DEBUG_INFO_UART_BAUDRATE 115200
#define DEBUG_INFO_UART_BUFF_SIZE 50
#define DEBUG_INFO_UART_TX_STATUS_NOT_INIT 0
#define DEBUG_INFO_UART_TX_STATUS_READY 12
#define DEBUG_INFO_UART_TX_STATUS_BUSY 123
/* Includes ------------------------------------------------------------------*/
#include "Common.h"
#include "stm32f4xx.h"
#include <stdio.h>
#include <string.h>
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
extern volatile INT8U g_u8DebugTxDmaStatus;
extern volatile INT8U g_au8DebugTxDmaBuff[DEBUG_INFO_UART_BUFF_SIZE];
#endif // end of USE_DEBUG_INFO_AT_UART
/* Exported macro ------------------------------------------------------------*/
/* Exported functions --

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值