关于使用 HAL Cube usart 接收 ??
请教下,关于 使用 HAL 的库,对串口数据进行接收时,如果我使用了2 .. ... 等串口接收时,那么是不是需要在下面的接收回调函数里面进行判断是哪个串口 ??
UART_HandleTypeDef huart1;
UART_HandleTypeDef huart2;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance==USART1)
{
HAL_UART_Transmit_IT(huart, g_tUsart1.RxBuff, 1);//发回给PC机显示
g_tUsart1.RxCnt = 0;
HAL_UART_Receive_IT(& huart1, &g_tUsart1.RxBuff, 1); // 接收完成后,重新开启接收中断
}
if(huart->Instance==USART2) // 是不是需要这样来进行判断 ???
{
HAL_UART_Transmit_IT(huart, g_tUsart2.RxBuff, 1);//发回给PC机显示
g_tUsart2.RxCnt = 0;
HAL_UART_Receive_IT( & huart2, &g_tUsart2.RxBuff, 1); // 接收完成后,重新开启接收中断
}
}
本帖最后由 0721de 于 2016-5-14 12:10 编辑
应该不需要
使用CallBack时你的形参时刻变化
g_tUsart1, g_tUsart2用形参传进来
代码少一半
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart,“在这加形参”)
0721de 发表于 2016-5-14 12:09
应该不需要
使用CallBack时你的形参时刻变化
g_tUsart1, g_tUsart2用形参传进来
你好,我试过了,需要判断 usart1, usart2才行, 在hal_uart里面有很多函数的啊
你要根据你需要的方式来调用对应的函数吧,然后在你的应用里面去做处理
我觉得类似callback等底层是不需要做处理的,因为st都已经帮你做好了,你只需要在应用里面处理就可以了
仅仅是个人意见
页:
[1]