关于WCHNET库的疑惑

MCU为CH32V307VCT6,主程序初始化网络库后,设置了一个定时器中断(间隔时间0.5ms),在中断处理函数里面调用如下代码:

WCHNET_MainTask();              //以太网库主任务函数,需要循环调用

if (WCHNET_QueryGlobalInt()) // 查询以太网全局中断,如果有中断,调用全局中断处理函数

{

WCHNET_HandleGlobalInt();

}

然后main()函数进入一个循环处理其他事情。
运行后开始能正常收发网络数据,但是过一段时间后,MCU的网络就不通了。如果不在中断处理函数里面调用上面那几句,改在main()函数的主循环里面调用,则一切正常。不知是什么原因?

您好,下面这段代码需要放在main函数使用,不能放在程序中断或其他地方

image.png


@TECH62 若是把这一段安排在线程中应该怎么写?我尝试过照这样写,然后网络任务就一直占着CPU,其他线程没有运行的机会


您好,下帖2楼回复附件例程为FreeRTOS下的以太网例程,可以参考一下

https://www.wch.cn/bbs/thread-89856-1.html

 


只有登录才能回复,可以选择微信账号登录