完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CH395 Socket3 Socket4 Socket5 配置成TCP_Client,只有Socket3能正常收发数据,Socket4 Socket5不能接收数据(无接收中断),能发心跳包,但数据是错的,且是固定的有规律数据,重新分配过缓存了,
static void Socket_R_S_Buf_Modify(void ) // 定义6个 Socket收发缓冲区 大小 { CH395SetSocketRecvBuf(0,0,4); // Socket 0 ,接收缓冲区4*512 = 2K,发送缓冲区4*512 = 2K CH395SetSocketSendBuf(0,4,4); CH395SetSocketRecvBuf(1,8,4); // Socket 1 CH395SetSocketSendBuf(1,12,4); CH395SetSocketRecvBuf(2,16,4); // Socket 2 CH395SetSocketSendBuf(2,20,4); CH395SetSocketRecvBuf(3,24,4); // Socket 3 CH395SetSocketSendBuf(3,28,4); CH395SetSocketRecvBuf(4,32,4); // Socket 4 CH395SetSocketSendBuf(4,36,4); CH395SetSocketRecvBuf(5,40,4); // Socket 5 CH395SetSocketSendBuf(5,44,4); } 请版主帮助分析解决,急啊 |
|
相关推荐
1个回答
|
|
您好,CH395默认开启四个socket,需要增加socket数量则另外要分配缓冲区。
(1)需要重新分配缓冲区数量,保证每个socket有收发缓存可使用。鉴于您进行了此步骤,可排除相关问题。 (2)驱动代码宏定义中的_SOCK_INF的socket信息和socketbuff外部缓存也需要定义足够组量。 (3)在判断全局中断状态类型的时候,由两个字节表示;鉴于后四个socket存在问题,检查第二个字节的标志是否正确读到,可使用逻辑分析仪检查实际物理电压波形。 (4)后三个TCP_Client的socket,请检查是否有相同的目的IP、目的端口或者本地端口号存在,造成冲突。 (5)使用芯片前可先按照官方例程风格及内容移植,确认代码正常使用之后,在按照需求进行更改,以此避免其他影响。 |
|
|
|
只有小组成员才能发言,加入小组>>
518 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2901 浏览 2 评论
2397 浏览 1 评论
865浏览 2评论
683浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
415浏览 1评论
518浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
810浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 13:48 , Processed in 1.056414 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号