run #include "sdk_project_config.h"
/* Includes ------------------------------------------------------------------*/
/* Private includes ----------------------------------------------------------/
/ USER CODE BEGIN Includes /
/ USER CODE END Includes */
/* Private typedef -----------------------------------------------------------/
/ USER CODE BEGIN PTD /
/ USER CODE END PTD */
/* Private define ------------------------------------------------------------/
/ USER CODE BEGIN PD /
#define UART_TX_RX_SIZE (8)
#define INST_UART (0)
/ USER CODE END PD */
/* Private macro -------------------------------------------------------------/
/ USER CODE BEGIN PM /
/ USER CODE END PM */
/* Private variables ---------------------------------------------------------/
/ USER CODE BEGIN PV */
uint8_t g_RecData[UART_TX_RX_SIZE];
#define UART_RX_LENGTH (20)
volatile bool g_rxComplete = false;
volatile bool g_txComplete = false;
uint8_t g_uartRxBuffer[UART_RX_LENGTH] = { 0 };
/* USER CODE END PV */
/* Private function declare --------------------------------------------------/
/ USER CODE BEGIN PFDC /
/ USER CODE END PFDC */
static void Board_Init(void);
/* Private user code ---------------------------------------------------------/
/ USER CODE BEGIN 0 /
/ Uart rx callback function */
void uart_RX_Callback(void *uartState, uart_event_t event, void userData)
{
(void)userData;
(void)uartState;
if (UART_EVENT_END_TRANSFER == event)
{
/ Note: Debug output inserted into interrupt routine for demo clarity. Might introduce delay. /
PRINTF("Data Received: ");
for (int i = 0; i < UART_RX_LENGTH; i++)
{
PRINTF("%x ", g_uartRxBuffer[i]);
}
PRINTF("\n\r");
}
else if (UART_EVENT_ERROR == event)
{
/ error happened */
}
}
void uart_TX_Callback(void *uartState, uart_event_t event, void userData)
{
(void)userData;
(void)uartState;
if (UART_EVENT_END_TRANSFER == event)
{
/ Note: Debug output inserted into interrupt routine for demo clarity. Might introduce delay. */
PRINTF("Data sent.\n");
}
}
/* USER CODE END 0 */
/**
@brief The application entry point.
@retval int
/
int main(void)
{
/ USER CODE BEGIN 1 /
status_t status = STATUS_SUCCESS;
/ USER CODE END 1 /
Board_Init();
/ USER CODE BEGIN 2 */
PRINTF("Build %s %s\r\n", DATE, TIME);
PRINTF("Linflexd Uart Interrupt Demo!\r\n");
LINFlexD_UART_DRV_InstallRxCallback(INST_UART, uart_RX_Callback, NULL);
LINFlexD_UART_DRV_InstallTxCallback(INST_UART, uart_TX_Callback, NULL);
/* USER CODE END 2 */
/* Infinite loop /
/ USER CODE BEGIN WHILE */
while (1)
{
status |= LINFlexD_UART_DRV_ReceiveData(INST_UART, g_RecData, UART_TX_RX_SIZE);
//PRINTF("\r\n g_RecData: %c",g_RecData);
/* Wait for reception to complete */
// while (!g_rxComplete)
// ;
/* Send received data */
// status |= LINFlexD_UART_DRV_SendData(INST_UART, g_RecData, UART_TX_RX_SIZE);
/* Wait for sending to complete */
// while (!g_txComplete)
// ;
// PRINTF("\r\n g_RecData: %c",g_RecData);
// g_txComplete = false;
// g_rxComplete = false;
if (status != STATUS_SUCCESS)
{
//break;
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
static void Board_Init(void)
{
CLOCK_SYS_Init(g_clockManConfigsArr,CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr,CLOCK_MANAGER_CALLBACK_CNT);
CLOCK_SYS_UpdateConfiguration(CLOCK_MANAGER_ACTIVE_INDEX,CLOCK_MANAGER_POLICY_AGREEMENT);
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS0,g_pin_mux_InitConfigArr0);
UTILITY_PRINT_Init();
LINFlexD_UART_DRV_Init(0, &linflexd_uart_config0_State, &linflexd_uart_config0);
}
程序正常跑起来的,没有进入DefaultISR了,串口是有发送数据的,用逻辑分析仪是能看到的,但是就是接收不到,麻烦帮我看看我的YCT和代码,哪个地方配置错了,谢谢Linflexd_Uart_Interrupt_Demo.yct