设置方法如下:
添加初始化代码如下:
eventRecord.c
c
#include "eventRecord.h"
#include "usart.h"
extern UART_HandleTypeDef *pcControlUart;
/*
RecordEvent初始化
*/
void InitEventRecorder(void)
{
#ifdef RTE_Compiler_EventRecorder
EventRecorderInitialize(EventRecordAll, 1);
EventRecorderStart();
#endif
}
/**
* @brief printf打印重定向
USER_REAL_PORT 决定使用虚拟串口还是真实串口打印
*/
#ifdef USER_REAL_PORT
int fputc(int ch, FILE *f)
{
#if 1
HAL_UART_Transmit(pcControlUart, (uint8_t *)&ch,1,0x10);//使用真实串口打印
#endif
return 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
c
#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()即可
测试函数如下:
c
void Test(void)
{
EventStartA(0);
UART_tx_IT(pcControlUart,"ack",3);
EventStopA(0);
EventStartB(1);
osDelay(1000);
printf("aaaa\r\n");
EventStopB(1);
}
开始调试
结果如下: