打印
[其他ST产品]

HAL_UART_RxCpltCallback HAL库中回调函数

[复制链接]
440|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2022-10-24 19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AC, LTC, UART, ck, tc
HAL_UART_RxCpltCallback  HAL库中回调函数两个串口同时进行中断接受数据,一开始串口四能一直接收到数据,为啥通过485发送命令与串口三通信后,整个回调函数就不执行了。
代码如下

/* USER CODE BEGIN 1 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
      
        if(huart->Instance==UART4)//激光雷达数据
        {
                if(huancun4[0]==0x59&&huancun4[1]==0x59)
                {
                        TF03_data=huancun4[2]+huancun4[3]*256;
                        TF03_data_ok=1;//激光雷达数据读取完毕 标志位置一
                }
                else if(huancun4[0]!=0x59||huancun4[1]!=0x59)
                {
                        TF03_data_ok=0;//数据错误 读取失败
                }
                for(uint8_t q=0;q<9;q++)
                {
                        huancun4[q]=0;

                }
               
                 HAL_UART_Receive_IT(&huart4,huancun4,9);//打开中断接收9个字节
               
        }
        else if(huart->Instance==USART3)//485数据
        {
                if(huancun4[0]==0x55&&huancun4[1]==0x11&&huancun3[7]==0x59)
                {
                        RS485TxData[0]=0x5B;
                        RS485TxData[1]=0x11;
                        RS485TxData[7]=0xBB;
                        RS485_data_ok=1;//485数据读取完毕 标志位置一
                }
                else if(huancun4[0]==0x55&&huancun4[1]==0x11&&huancun3[7]==0x59)
                {
                        RS485_data_ok=0;//数据错误 读取失败
                }
                for(uint8_t m=0;m<9;m++)
                {
                        huancun3[m]=0;

                }
                 HAL_UART_Receive_IT(&huart3,huancun3,8);//打开中断接收9个字节
               
        }

      
      

}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1327

主题

3833

帖子

0

粉丝