我使用的
STM32的两路串口收发,两个串口接收中断处理有问题,我现在的处理方式是这样的
/* USER CODE BEGIN 4 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart == &huart2)
{
uRX_buf[RX_cont++] = RX_buf;
// HAL_UART_Transmit_DMA(&huart2, uTX_buf, 8);
if(RX_cont>63)
{
RX_cont=0;
}
}
else if(huart == &huart4)
{
uRX_buf[RX_cont++] = RX_buf4;
if(RX_cont>63)
{
RX_cont=0;
}
// HAL_UART_Receive_IT(&huart4,&RX_buf4,1);//¡ä??¨²?¨®¨º¨¹?D??
}
我
仿真看的确实是进了中断了,但是回调函数中的 else if(huart == &huart4)执行不到,有么有用过的大神给点提示吧,谢谢!
要改成if(huart->Instance ==USART1 )吗>?
好的我在试下看看 ,谢谢!
大神,你这个方式好像行不通阿回调函数的传递参数只有一个void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
像你这样的写法会报错.
一周热门 更多>