【关于ST马达库生成代码中UART2的疑问】
用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的接收中断?
如是裸机,可放在while loop前,如果Uart 接收加 DMA,还必须提前分配DMA buffer mikecai 发表于 2019-11-15 08:52
如是裸机,可放在while loop前,如果Uart 接收加 DMA,还必须提前分配DMA buffer
自己生成的代码加这个是明确的。
问题是现在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);
藏得好深。
页:
[1]