大家好,w5500我使用了2个socket,分别是tcp client和udp。测试时,同时调用tcp_send和udp_send发送数据,在中断引脚上只能收到tcp的socket产生的send_ok中断,udp的send_ok没有产生中断,用查询的方式可以看到udp的Sn_IR等相关的中断标志位是置位的,说明有中断,但是中断引脚却一直是低电平。实际数据都是发送成功的。
在收到tcp的send_ok中断时,我是把tcp socket相关的中断清除了,清除后我又读了一下确实是清除的。按w5500手册的说法,当有多个中断产生时,清除了先产生的中断标志位,会拉高INT引脚的,然后在intlevel时间后拉低INT引脚。我tcp的con和discon都是用中断触发的,清除中断INT确实拉高了,只一个tcp发送,中断触发也一直是正常的。不知道为什么两个socket发送时清除了一个send_ok中断后,INT引脚无法拉高恢复是怎么回事
一周热门 更多>