完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
CH579的例程 NET部分TCP_Server例程测试遇到如下问题,像是内存设置问题?
接口封装的很简洁,说明文档也很简单。。。。(文档很重要) 希望大神帮助解答下,未知报错挺可怕的 int main(void) { UINT8 i = 0; SystemClock_UART1_init(); /* 系统时钟和串口1初始化 */ i = CH57xNET_LibInit(IPAddr,GWIPAddr,IPMask,MACAddr); /* 库初始化 */ mStopIfError(i); /* 检查错误 */ PRINT("CH57xNETLibInit Success "); timer0Init( 10000 ); /* 初始化定时器:10ms */ NVIC_EnableIRQ(ETH_IRQn); while ( CH57xInf.PHYStat < 2 ) { DelayMs(50); } CH57xNET_CreatTcpSocket(); /* 创建TCP Socket */ PRINT("CH579 TCP server create! "); while(1) { CH57xNET_MainTask(); /* CH57xNET库主任务函数,需要在主循环中不断调用 */ if(CH57xNET_QueryGlobalInt())CH57xNET_HandleGlobalInt(); /* 查询中断,如果有中断,则调用全局中断处理函数 */ } } //DelsyMs(50); 订正: DelayMs(50); int main(void) { UINT8 i = 0; SystemClock_UART1_init(); /* 系统时钟和串口1初始化 */ i = CH57xNET_LibInit(IPAddr,GWIPAddr,IPMask,MACAddr); /* 库初始化 */ mStopIfError(i); /* 检查错误 */ PRINT("CH57xNETLibInit Success "); Timer0Init( 10000 ); /* 初始化定时器:10ms */ NVIC_EnableIRQ(ETH_IRQn); while ( CH57xInf.PHYStat < 2 ) {DelayMs(50);} CH57xNET_CreatTcpSocket(); /* 创建TCP Socket */ PRINT("CH579 TCP server create! "); while(1) { CH57xNET_MainTask(); /* CH57xNET库主任务函数,需要在主循环中不断调用 */ if(CH57xNET_QueryGlobalInt())CH57xNET_HandleGlobalInt(); /*中断标志查询执行*/ } } 工程编译没问题,报错不变 |
|
相关推荐
2个回答
|
|
您好,根据打印信息,应该在创建Socket时出错,检查下Socket参数是否合法。
|
|
|
|
问题更正:根据打印是CH57xNET_SetSocketTTL处报错 ,设128也是一样报错,应该跟参数没关系,是内部函数实现问题?
另外,NET.LIB封装的DHCP协议中hostname不能设置,这个函数或定义给增加下怎么样,设备名unknow不太精致 #define RECE_BUF_LEN 536UINT8 IPAddr[4] = {192,168,0,200}; /* CH579IP地址 */UINT8 GWIPAddr[4]= {192,168,0,1}; /* CH579网关 */UINT8 IPMask[4] = {255,255,255,0}; /* CH579子网掩码 */UINT8 DESIP[4] = {192,168,0,102}; /* 目的IP地址 */UINT8 SocketId; /* 保存socket索引,可以不用定义 */UINT8 SocketRecvBuf[4][RECE_BUF_LEN]; /* socket接收缓冲区 */void CH57xNET_CreatTcpSocket(void){ UINT8 i; SOCK_INF TmpSocketInf; /* 创建临时socket变量 */ memset((void *)&TmpSocketInf,0,sizeof(SOCK_INF)); /* 库内部会将此变量复制,所以最好将临时变量先全部清零 */ memcpy((void *)TmpSocketInf.IPAddr,DESIP,4); /* 设置目的IP地址 */ TmpSocketInf.SourPort = 2000; /* 设置源端口 */ TmpSocketInf.ProtoType = PROTO_TYPE_TCP; /* 设置socekt类型 */ TmpSocketInf.RecvStartPoint = (UINT32)SocketRecvBuf; /* 设置接收缓冲区的接收缓冲区 */ TmpSocketInf.RecvBufLen = RECE_BUF_LEN ; /* 设置接收缓冲区的接收长度 */ i = CH57xNET_SocketCreat(&SocketId,&TmpSocketInf); /* 创建socket,将返回的socket索引保存在SocketId中 */ mStopIfError(i); /* 检查错误 */ PRINT("CH57xNET_SocketCreat finishrn");#ifdef KEEPLIVE_ENABLE CH57xNET_SocketSetKeepLive( SocketId, 1 ); /* 开启socket的KEEPLIVE功能(V06版本支持) */#endif i = CH57xNET_SocketListen(SocketId); /* TCP连接 */ mStopIfError(i); /* 检查错误 */ PRINT("CH57xNET_SocketListen finishrn"); i = CH57xNET_SetSocketTTL( SocketId,10 ); mStopIfError(i); /* 检查错误 */ PRINT("CH57xNET_SetSocketTTL finishrn");} |
|
|
|
只有小组成员才能发言,加入小组>>
540 浏览 1 评论
CH579M+RT-Thread,RTC从Sleep模式唤醒失败是什么原因?
2911 浏览 2 评论
2407 浏览 1 评论
888浏览 2评论
704浏览 1评论
riscv-none-embed-objcopy: \'PWM_Output.elf\': No such file这个咋解决,
429浏览 1评论
549浏览 1评论
请教一下,Mounriver 编译不成功:找不到库文件,怎么整
826浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-1 15:41 , Processed in 0.920260 second(s), Total 47, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号