设置方法如下:
添加初始化代码如下:
eventRecord.c
#include "eventRecord.h"
#include "usart.h"
extern UART_HandleTypeDef *pcControlUart;/*
RecordEvent初始化
*/
void InitEventRecorder(void)
{#ifdef RTE_Compiler_EventRecorderEventRecorderInitialize(EventRecordAll, 1);EventRecorderStart();#endif
}/*** @brief printf打印重定向
USER_REAL_PORT 决定使用虚拟串口还是真实串口打印*/
#ifdef USER_REAL_PORT
int fputc(int ch, FILE *f)
{#if 1HAL_UART_Transmit(pcControlUart, (uint8_t *)&ch,1,0x10);//使用真实串口打印#endifreturn ch;
}
#else//使用虚拟串口打印,retarget_io.c有定义
#endif//根据实际长度打印字符串,可进行一层封装
void virtual_debug(RxTx_t src,uint8_t *data,uint16_t len)
{printf("%s %s",__DATE__,__TIME__);if(src == usart_rx){printf("rx:");}if(src == usart_tx){printf("tx:");}for(uint8_t i=0;i<len;i++){printf("%c",*data);data++;}printf("\r\n");
}
eventRecord.h
#ifndef _EVENTRECORD_H
#define _EVENTRECORD_H
#include <stdio.h>
#include "EventRecorderConf.h"
#include "EventRecorder.h"
#include "RTE_Components.h"void InitEventRecorder(void);
//#define USER_REAL_PORT#endif
使用时,调用初始化函数InitEventRecorder()即可
测试函数如下:
void Test(void)
{EventStartA(0);UART_tx_IT(pcControlUart,"ack",3);EventStopA(0);EventStartB(1);osDelay(1000);printf("aaaa\r\n");EventStopB(1);
}
开始调试
结果如下: