用WB生成的工程 /* Initialize all configured peripherals */.... MX_USART2_UART_Init(); ... /* Initialize interrupts */ MX_NVIC_Init(); 单步调试每次都能进入中断。 用cubemx只生成串口通信的工程, 必须加 __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE); 才能进入中断 /* Initialize all configured peripherals */ ... MX_USART2_UART_Init(); ... /* Initialize interrupts */ MX_NVIC_Init(); /* USER CODE BEGIN 2 */ __HAL_UART_ENABLE_IT(&huart2, UART_IT_RXNE); 请问点击库生成的代码在哪儿初始化的UART2的接收中断? |
自己生成的代码加这个是明确的。
问题是现在ST MCSDK5.x 电机库自己生成的代码,关于UART的初始化,没有找到初始化中断的地方。我的意思是感觉电机库生成的代码没有对串口的中断进行初始化,但是将代码下载后,给接收中断打断点,是可以进入中断的,所以有疑惑。
MX_MotorControl_Init(); --> UI_TaskInit(wConfig,NBR_OF_MOTORS,pMCI,pMCT,s_fwVer); --> MCP_Init(pMCP, (FCP_Handle_t *) & pUSART, & UFCP_Send, & UFCP_Receive, & UFCP_AbortReceive, pDAC, s_fwVer); --> MCP_WaitNextFrame(pHandle); --> pHandle->fFcpReceive(pHandle->pFCP); --> LL_USART_EnableIT_RXNE(pActualHandle->USARTx);
藏得好深。