Files
BLV_C1F_Module/BasicCode/Drive/USART/Debug.c
caocong 95916b9995 fix:修改UDP通讯中,取电变化上报机制
1、问题点:当RCU网络状态异常的情况下,网络还处于协商状态下,还未进入正常通讯环节时,取电变化不会进行判断。这会导致取电变化上报与实际产生取电状态时间点对不上。
2、将BLV_C1F_Module代码上传至Gitea,之前代码修改记录请查看 .\BasicCode\Readme.txt
2026-01-23 09:23:12 +08:00

95 lines
3.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#include "DBG.h"
#include <stdarg.h>
long long SysTick_Now = 0, SysTick_Last = 0, SysTick_Diff = 0;
char Dbg_Buffer[100];
uint32_t Dbg_Switch = (DBG_OPT_ActCond_STATUS << DBG_BIT_ActCond_STATUS_bit) + \
(DBG_OPT_MQTT_STATUS << DBG_BIT_MQTT_STATUS_bit) + \
(DBG_OPT_Debug_STATUS << DBG_BIT_Debug_STATUS_bit) + \
(DBG_OPT_LOGIC_STATUS << DBG_BIT_LOGIC_STATUS_bit) + \
(DBG_OPT_DEVICE_STATUS << DBG_BIT_DEVICE_STATUS_bit) + \
(DBG_OPT_NET_STATUS << DBG_BIT_NET_STATUS_bit) + \
(DBG_OPT_SYS_STATUS << DBG_BIT_SYS_STATUS_bit);
/*******************************************************************************
* Function Name : Dbg_NoTick_Print
* Description : DEBUG调试信息输出 - 不带时间戳打印
* Input :
* Return :
*******************************************************************************/
void Dbg_NoTick_Print(int DbgOptBit ,const char *cmd, ...)
{
if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit )))
{
SysTick_Now = SysTick_1ms;
SysTick_Diff = SysTick_Now - SysTick_Last ;
SysTick_Last = SysTick_Now;
va_list args; //定义一个va_list类型的变量用来储存单个参数
va_start(args,cmd); //使args指向可变参数的第一个参数
vprintf(cmd,args); //必须用vprintf等带V的
va_end(args); //结束可变参数的获取
}
}
void Dbg_Print(int DbgOptBit ,const char *cmd, ...)
{
if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit )))
{
SysTick_Now = SysTick_1ms;
SysTick_Diff = SysTick_Now - SysTick_Last ;
SysTick_Last = SysTick_Now;
sprintf(Dbg_Buffer,"%8.lld [%6.lld]: ",SysTick_Now,SysTick_Diff);
DBG_Printf("%s",Dbg_Buffer);
va_list args; //定义一个va_list类型的变量用来储存单个参数
va_start(args,cmd); //使args指向可变参数的第一个参数
vprintf(cmd,args); //必须用vprintf等带V的
va_end(args); //结束可变参数的获取
}
}
void Dbg_Println(int DbgOptBit ,const char *cmd, ...)
{
if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit )))
{
SysTick_Now = SysTick_1ms;
SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差
SysTick_Last = SysTick_Now;
sprintf(Dbg_Buffer,"%8.lld [%6.lld]: ",SysTick_Now,SysTick_Diff);
DBG_Printf("%s",Dbg_Buffer);
va_list args; //定义一个va_list类型的变量用来储存单个参数
va_start(args,cmd); //使args指向可变参数的第一个参数
vprintf(cmd,args); //必须用vprintf等带V的
va_end(args); //结束可变参数的获取
DBG_Printf("\n\r");
}
}
void Dbg_Print_Buff(int DbgOptBit ,const char *cmd ,uint8_t *buff,uint32_t len)
{
if (DBG_LOG_EN && (Dbg_Switch & (1 << DbgOptBit )))
{
SysTick_Now = SysTick_1ms;
SysTick_Diff = SysTick_Now - SysTick_Last; //上一次打印时间差
SysTick_Last = SysTick_Now;
sprintf(Dbg_Buffer,"%8.lld [%6.lld]: ",SysTick_Now,SysTick_Diff);
DBG_Printf("%s%s",Dbg_Buffer,cmd);
for(uint32_t i=0;i<len;i++)
{
DBG_Printf("%02X ",buff[i]);
}
DBG_Printf("\n\r");
}
}