Files
HBshuiwuConcentrator/APP/debug_printf.h
2025-12-15 16:07:49 +08:00

164 lines
6.4 KiB
C

#ifndef __DEBUG_PRINTF_H__
#define __DEBUG_PRINTF_H__
#include "Basedefine.h"
#include "Rtc.h"
//define COM_DEBUG infomation
//#define COM_DEBUG_NO UART4 // DEBUG
//#define COM_DEBUG_BAUD 9600
//#define COM_DEBUG_CHECK USART_Parity_Even
//#define COM_DEBUG_CLK RCC_APB1Periph_UART4
//
//#define COM_DEBUG_TX_PIN GPIO_Pin_10
//#define COM_DEBUG_TX_PORT GPIOC
//#define COM_DEBUG_TX_PORT_CLK RCC_APB2Periph_GPIOC
//
//#define COM_DEBUG_RX_PIN GPIO_Pin_11
//#define COM_DEBUG_RX_PORT GPIOC
//#define COM_DEBUG_RX_PORT_CLK RCC_APB2Periph_GPIOC
//
//#define COM_DEBUG_IRQn UART4_IRQn
//
//#define COM_DEBUG_DMA_CLK RCC_AHBPeriph_DMA2
//#define COM_DEBUG_TX_DMA_CHANNEL DMA2_Channel5
//#define COM_DEBUG_DR_BASE (UART4_BASE + 4)
//#define COM_DEBUG_TX_IRQHandler DMA2_Channel4_5_IRQHandler
//#define COM_DEBUG_RX_IRQHandler UART4_IRQHandler
//#define COM_DEBUG_TX_DMA_COMPLETE DMA2_IT_TC5
//#define COM_DEBUG_TX_DMA_ERROR DMA2_IT_TE5
//#define COM_DEBUG_DMA_IRQn DMA2_Channel4_5_IRQn
//#define COM_DEBUG_TX_BUFFER_SIZE 255
//#define COM_DEBUG_RX_BUFFER_SIZE 255
//#define COM_DEBUG_STR "DEBUG"
#define COM_DEBUG_NO UART5 // DEBUG
//#define COM_DEBUG_BAUD 115200
//#define COM_DEBUG_CHECK USART_Parity_Even
#define COM_DEBUG_BAUD 9600
#define COM_DEBUG_CHECK USART_Parity_No
#define COM_DEBUG_CLK RCC_APB1Periph_UART5
#define COM_DEBUG_TX_PIN GPIO_Pin_12
#define COM_DEBUG_TX_PORT GPIOC
#define COM_DEBUG_TX_PORT_CLK RCC_APB2Periph_GPIOC
#define COM_DEBUG_RX_PIN GPIO_Pin_2
#define COM_DEBUG_RX_PORT GPIOD
#define COM_DEBUG_RX_PORT_CLK RCC_APB2Periph_GPIOD
#define COM_DEBUG_IRQn UART5_IRQn
#define COM_DEBUG_DMA_CLK 0
#define COM_DEBUG_TX_DMA_CHANNEL 0
#define COM_DEBUG_DR_BASE 0
#define COM_DEBUG_TX_IRQHandler 0
#define COM_DEBUG_RX_IRQHandler 0
#define COM_DEBUG_TX_DMA_COMPLETE 0
#define COM_DEBUG_TX_DMA_ERROR 0
#define COM_DEBUG_DMA_IRQn 0
#define COM_DEBUG_TX_BUFFER_SIZE 255
#define COM_DEBUG_RX_BUFFER_SIZE 255
#define COM_DEBUG_STR "DEBUG"
//define COM LORA moudule infomation
//#define COM_RADIO_NO UART5
//#define COM_RADIO_BAUD 9600 //8,e,1
//#define COM_RADIO_CHECK USART_Parity_Even
//#define COM_RADIO_CLK RCC_APB1Periph_UART5
//
//#define COM_RADIO_TX_PIN GPIO_Pin_12
//#define COM_RADIO_TX_PORT GPIOC
//#define COM_RADIO_TX_PORT_CLK RCC_APB2Periph_GPIOC
//
//#define COM_RADIO_RX_PIN GPIO_Pin_2
//#define COM_RADIO_RX_PORT GPIOD
//#define COM_RADIO_RX_PORT_CLK RCC_APB2Periph_GPIOD
//
//#define COM_RADIO_IRQn UART5_IRQn
//
//#define COM_RADIO_DMA_CLK 0
//
//#define COM_RADIO_TX_DMA_CHANNEL 0
//#define COM_RADIO_DR_BASE 0
//#define COM_RADIO_TX_IRQHandler 0
//#define COM_RADIO_RX_IRQHandler 0
//#define COM_RADIO_TX_DMA_COMPLETE 0
//#define COM_RADIO_TX_DMA_ERROR 0
//#define COM_RADIO_DMA_IRQn 0
//
//
//#define COM_RADIO_TX_BUFFER_SIZE 255
//#define COM_RADIO_RX_BUFFER_SIZE 255
//#define COM_RADIO_STR "radio"
/*
#define COM_DEBUG_NO USART3 // DEBUG
#define COM_DEBUG_BAUD 9600
#define COM_DEBUG_CHECK USART_Parity_Even
#define COM_DEBUG_CLK RCC_APB1Periph_USART3
#define COM_DEBUG_TX_PIN GPIO_Pin_10
#define COM_DEBUG_TX_PORT GPIOB
#define COM_DEBUG_TX_PORT_CLK RCC_APB2Periph_GPIOB
#define COM_DEBUG_RX_PIN GPIO_Pin_11
#define COM_DEBUG_RX_PORT GPIOB
#define COM_DEBUG_RX_PORT_CLK RCC_APB2Periph_GPIOB
#define COM_DEBUG_IRQn USART3_IRQn
#define COM_DEBUG_DMA_CLK RCC_AHBPeriph_DMA1
#define COM_DEBUG_TX_DMA_CHANNEL DMA1_Channel2
#define COM_DEBUG_DR_BASE (USART3_BASE + 4)
#define COM_DEBUG_TX_IRQHandler DMA1_Channel2_IRQHandler
#define COM_DEBUG_RX_IRQHandler USART3_IRQHandler
#define COM_DEBUG_TX_DMA_COMPLETE DMA1_IT_TC2
#define COM_DEBUG_TX_DMA_ERROR DMA1_IT_TE2
#define COM_DEBUG_DMA_IRQn DMA1_Channel2_IRQn
#define COM_DEBUG_TX_BUFFER_SIZE 255
#define COM_DEBUG_RX_BUFFER_SIZE 255
*/
#define PRINT_TIME_OUT(bytes) (((bytes * 11000) / COM_DEBUG_BAUD) + 100) //ms
#define Q_PRINT_LENGTH 128
#define Q_PRINT_SIZE 16
#define PRINT_BUFFER_SIZE (Q_PRINT_LENGTH * Q_PRINT_SIZE)
#define PRINT_MAX_BUF 255
#define PRINT(CODE) do\
{\
sTime time;\
time = TimetoBCD(RTC_GetCounter());\
printf("%02d:%02d:%02d->", time.hour, time.minute, time.second);\
CODE\
} while (0)
#define __DISPLAY
#ifdef __DISPLAY
#define DISP(CODE) PRINT(CODE)
#define LIST(CODE) do{CODE}while(0)
#else
#define DISP(CODE)
#define LIST(CODE)
#endif
void debug_Tx(u8 *buf, u8 len);
void task_print_start(void);
void reset_debug_buf(void);
void printf_buf(u8* buf, u16 length);
u16 get_debugBuf_len(void);
u8 * get_debugBuf(void);
void close_printf(void);
void open_printf(void);
#endif