silent 发表于 2022-2-16 14:49:39

在FreeRTOS系统,通过串口进行高速modbus tcp通信导致PCB板卡死

求助各位大佬,我在自己设计的板子中,使用的是STM32F429ZIT6芯片,通过串口发送和接收modbus RTU数据,经过USR-K7转换成modbus TCP协议数据,实现与上位机通信。在通信过程中,当上位机的读取频率达到100次/秒时,板子在运行20分钟后,会出现卡死的现象,而未进行通信或通信频率在1次/秒的情况下,测试3小时未出现卡死的情况。
卡死的Debug的界面如下所示:

在程序中,与通信相关除移植的Freemodbus库文件及串口、定时器的设置函数以外,只有一个FreeRtos的任务函数:
void MB_Poll_Task(void *parameter)
{
        MB_Parameter_Init();
        eMBEnable();
        for(;;)
        {
                eMBPoll();
                vTaskDelay(10);
        }
       
}

想问问各位大佬知道这可能是哪里出了问题。

eric2013 发表于 2022-2-17 09:48:13

直接把FreeRTOS去掉,裸机测试下是否正常。你这个用不用FreeRTOS意义不大。
页: [1]
查看完整版本: 在FreeRTOS系统,通过串口进行高速modbus tcp通信导致PCB板卡死