YTM32B1MD1 Uart中断接收DEMO修改的程序会进入DefaultISR ,用官方DEMO配置也是一样的
- 
 
  
 #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];
 volatile bool g_rxComplete = false;
 volatile bool g_txComplete = false;
 / 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_RxCallback(void *LINFLexDState, uart_event_t event, void *userData)
 {
 (void)LINFLexDState;
 (void)userData;
 if (event == UART_EVENT_END_TRANSFER)
 {
 g_rxComplete = true;
 }
 }/* Uart tx callback function */ 
 void Uart_TxCallback(void *LINFLexDState, uart_event_t event, void *userData)
 {
 (void)LINFLexDState;
 (void)userData;
 if (event == UART_EVENT_END_TRANSFER)
 {
 g_txComplete = true;
 }
 }/* 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_RxCallback, NULL); 
 LINFlexD_UART_DRV_InstallTxCallback(INST_UART, Uart_TxCallback, 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();
 }/* USER CODE BEGIN 4 / 
 / USER CODE END 4 */
  程序跑到箭头所指的地方就进入了DefaultISRLinflexd_Uart_Interrupt_Demo.yct yct配置工程已经提交 程序跑到箭头所指的地方就进入了DefaultISRLinflexd_Uart_Interrupt_Demo.yct yct配置工程已经提交
- 
- 
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
- 
快速上手云途开发生态
发帖前请查看
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...
 



 时钟配置补充
 时钟配置补充