奏奏奏 发表于 2017-3-17 14:06:29

楼主如果是接收固定帧尾结束的数据帧
可以参考以下我的贴的代码

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
        if(huart == &huart2)
{
                Rxbuff_UART2 = aaRxBuffer_UART2;
               
               
                if((Rxbuff_UART2 == 0xFF)&&(Rxbuff_UART2 == 0xFC))
                {
                        Rx_Num_UART2 = ++Rx_count_UART2;
                        Rx_count_UART2 = 0;
                               
                }
                else Rx_count_UART2++;
                HAL_UART_Receive_IT(&huart2,(uint8_t*)aaRxBuffer_UART2,1);
}
}

冷眼1121 发表于 2017-3-17 16:37:52

奏奏奏 发表于 2017-3-17 14:01
楼主这么写没有毛病
我做的项目里面区分串口也是这么写的
if(huart == &huart4)


是的,这么写确实没毛病您给提供的思路我看了下,应该也是可行的就是把接收中断 的字符个数设置成1 每次进中断后需要重新再开启中断,相对来说比较麻烦一些 我换成了DMA 接收模式,设置成连续模式拉,应该能方便点,而且一般数据处理我不放在中断回调函数里面,这样对中断时效性有影响我在MAIN 里面处理的。非常感谢您能够给我提供思路。希望以后能多交流。
页: 1 [2]
查看完整版本: 有关STM32 HAL 库多个串口的回调函数问题