- 博客(7)
- 收藏
- 关注
原创 GD32H7 LWIP做 TCP server 实现双端口监听+网线热插拔恢复
默认的实现单端口TCP Server+ 网线热插拔后,实际应用中可能需要开多个端口,实现多通道通信,提高通信效率,这对大数据传输很有必要,因此在此基础之上 ,实现了多端口的TCP Server监听通信和网线热插拔恢复。在实现双端口通信后,发现如果只连接一个端口,拔掉网线后,另外一个端口由于未连接,仍阻塞在accept中,导致hardfault,或再次插入网线,通信无法恢复,这是由于阻塞accept的任务未被正确释放,相关资源也未被释放,因此无法在网线插入后恢复通信。,更改相关的宏参数即可。
2025-11-26 09:24:29
381
原创 GD32H7 LWIP 实现TCP server,做modbus tcp slave,触发 RST ACK处理
在和GD32H7的上级设备调试modbus TCP时,出现问题,对方主机收不到我的应答帧。下面 是交互报文和抓包。
2025-11-19 10:09:17
116
原创 GD32H7+LWIP TCP Server+SR8201+Freertos实现TCP服务端网线热插拔功能
基于国产GD32H7 +Freertos+LWIP TCP Server+SR8201 实现网线热插拔功能
2025-10-24 10:56:58
310
原创 HPM6360+Freertos+LWIP实现TCP server 网线热插拔
性价比高,PHY芯片选用SR8201F,HPM6360开发SDK用的是当前最新的SDK1.9.0版本,SDK中提供的TCP Server例程中驱动PHY芯片为RTL8201,PHY芯片变化无所谓,都是PIN对PIN可替换的,主要要修改开发板和自己设计的板子中PHY芯片的 PHY ADDR.OK ,PHY芯片替换这块略过。dat_ems_update_ext_phy_link_up(bool),就是网线link up和link down的状态。5:修改优化创建TCP server的任务,修改如下,
2025-06-19 10:17:02
432
原创 GD32F427 串口空闲中断DMA收发
费了好些时间,调通了GD32F427的串口DMA收发,直接上代码吧。同一套代码,已经调通了USART0,USART1,USART2,USART5。在任务里20ms运行一次,可以,简单判断接收长度大于0,就把接收的数据发送出来,用来验证串口是否正常工作。中断函数里执行空闲中断的判断,清除空闲中断标志,数据读取长度,拷贝,重新使能DMA接收等操作。然后初始化DMA:TX和RX分别初始化,也可以一起初始化,随便怎么样都行。串口DMA收发也要搞一下,降低MCU的工作负荷。其他三个串口也是同理。首先初始化NVIC。
2023-10-19 14:36:39
1254
4
原创 GD32F427,GD32F4XX,定时器0互补输出PWM
GD32F427 基于GD官方库的定时器0TIMER0 的CH0,CH0N互补输出和CH2单独控制输出
2023-10-16 13:51:24
2298
原创 GD32E503Vxx SPI W5500通信
国产替代和ETH网关开发,用到了GD32E503Vxx和W5500,首先在W5500 Evaluation board V1.0上,也就是基于STM32F103RCT6的评估板上,移植了DHCP,DNS,MQTT等功能,跑起来很顺利。后续移植到GD32E503VET6自己的板卡上,出现了奇怪的问题。上电配置后,dhcp发送的数据抓包根本看不到,所以收到的llen = getSn_RX_RSR(SOCK_DHCP)一直是0,而跳过dhcp,配置个默认的ip,直接跑后面的dns和mqtt,完全没有问题,这个问题
2021-11-11 17:46:56
3045
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅