#include <stdbool.h>

#define printf SMprintf
extern void SMprintf(const char *format, ...);
extern uint16_t Uart3_DeQueue(void);
extern bool Uart3_Is_Empty(void);
extern void Uart3_EnQueue(uint16_t data);
extern void onl_monitor(unsigned char c);

__HAL_UART_ENABLE_IT(&huart3, UART_IT_RXNE);
__HAL_UART_ENABLE_IT(&huart3, UART_IT_TC);

void UART_Interrupt_Processing(UART_HandleTypeDef *huart)
{
if(huart->Instance == huart3.Instance)
{
if(HAL_UART_Receive_IT(&huart3, Receive_Buffer, 1) == HAL_OK)
{
RxFlag = 1;
Uart3_EnQueue(Receive_Buffer[0]);
}
}
}

void USART3_IRQHandler(void)
{
HAL_UART_IRQHandler(&huart3);
UART_Interrupt_Processing(&huart3);
}

/*
* queue.h
*
* Created on : 2023.06.20
* Author : Jaewhoon
*/
#ifndef QUEUE_H_
#define QUEUE_H_
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define U3_BUFFER_SIZE 100
#define TRUE 1
#define FALSE 0
void Uart3_EnQueue(uint16_t data);
void u3_increase_point_value(uint32_t * data_p);
uint16_t Uart3_DeQueue(void);
bool Uart3_Is_Empty(void);
#endif /* QUEUE_H_*/

#include "callqueue.h"
uint16_t u3_rx_buffer[U3_BUFFER_SIZE];
uint16_t u3_rx_point_head = 0;
uint16_t u3_rx_point_tail = 0;
void Uart3_EnQueue(uint16_t data)
{
u3_rx_buffer[u3_rx_point_head] = data;
u3_increase_point_value(&u3_rx_point_head);
}
void u3_increase_point_value(uint32_t *data_p)
{
(*data_p)++;
if(U3_BUFFER_SIZE == (*data_p))
{
(*data_p) = 0;
}
}
uint16_t Uart3_DeQueue(void)
{
uint16_t retVal = u3_rx_buffer[u3_rx_point_tail];
u3_increase_point_value(&u3_rx_point_tail);
return retVal;
}
bool Uart3_Is_Empty(void)
{
if(u3_rx_point_head == u3_rx_point_tail)
{
return TRUE;
}
return FALSE;
}

/*********************************************************
* @file callcmd.h
* #brief callcmd.c에서 사용하는 변수 및 함수정의
*********************************************************/
/*Define to prevent recursive inclusion******************/
#ifndef _CALLCMD_H
#define _CALLCMD_H
/*Includes***********************************************/
#include <stdio.h>
#include "string.h"
#include "stm32f4xx_hal.h"
#include "cmsis_os.h"
#include "FreeRTOS.h"
#include "task.h"
#include "cmsis_os.h"
#include <stdbool.h>
#define byte unsigned char
#define uint8 unsigned char
#define word unsigned short
#define lword unsigned int
#define int8u unsigned char
#define u8 unsigned char
#define u16 unsigned short
#define u32 unsigned int
#define DD_SUCCESS YES
#define FALSE -1
#define YES 1
#define NO 0
/* The Rx task will block on the Rx queue for a long period*/
#define COM1_DEBUG 0x00
#define printf SMprintf
uint16_t Uart3_DeQueue(void);
bool Uart3_Is_Empty(void);
extern UART_HandleTypeDef huart3; // access huart3 instance
#define COM1_DEBUG 0x00
#define printf SMprintf
uint16_t Uart3_DeQueue(void);
bool Uart3_Is_Empty(void);
extern UART_HandleTypeDef huart3; // access huart3 instance
void prt_hexbnb(int n, int8u *hex);
int8u ktolower(int8u c);
void cpybuf(int8u *src, int8u *des, int cnt);
int get_nstring(char buf[]);
char get_io_number(unsigned int *retval);
int dsp_mem(int argc, char *argv[]);
int chg_mem(int argc, char *argv[]);
int mem_read(int argc, char *argv[]);
int fill(int8u *sp, int8u c, int n);
int parse_string(unsigned char *s, char *argv[]);
int wrd_mon(int argc, char *argv[]);
int bfm_msg_mon(int argc, char *argv[]);
void onl_monitor(unsigned char c);
int monitor_chelp(int argc, char * argv[]);
int wl_mon(int argc, char *argv[]);
int wr_loop(int argc, char *argv[]);
#endif /*_COMMON_H*/
빌드가 안되는데 정의가 안된 변수들이 있다고 한다.
원인을 좀 더 파악해보기로....