在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);
}
}
想问问各位大佬知道这可能是哪里出了问题。
直接把FreeRTOS去掉,裸机测试下是否正常。你这个用不用FreeRTOS意义不大。
页:
[1]