完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想基于lwIP协议中的UDP协议,用单片机做一个服务器,接受电脑的指令然后返回数据。以下是我的代码
/*****************************************************函数功能:初始化udp,选定通信端口,建立连接机制****************************************************/void Udp_Api_init(void){ err_t err; struct udp_PCB *UDPpcb; /* create a new UDP PCB structure */ UDPpcb = udp_new(); if (!UDPpcb) { /* Error creating PCB. Out of Memory */ return; } /* Bind this PCB to port 99 */ err = udp_bind(UDPpcb, IP_ADDR_ANY, service_port); if (err != ERR_OK) { /* Unable to bind to port */ return; } //通知协议栈当99端口有连接请求时调用recv_callback_udp udp_recv(UDPpcb, recv_callback_udp, NULL); } void recv_callback_udp(void *arg,struct udp_pcb *upcb, struct pbuf *pkt_buf, struct ip_addr *addr,u16_t port){struct ip_addr dAddr = *addr;u8 data[5]={1,2,3,4,5};u8 *pValiData;struct pbuf *p ;struct ip_addr ipaddr;struct udp_pcb *UDPpcb1; pValiData=pkt_buf->payload; if( pkt_buf != NULL ) { if(*pValiData > 0x05) //接收到的指令码大于5,返回原指令 udp_sendto( upcb , pkt_buf , &dAddr , port ) ; else { p = pbuf_alloc(PBUF_RAW,sizeof(data),PBUF_RAM); //根据将要发送的数据大小开辟pbuf p->payload=(void *)data; IP4_ADDR(&ipaddr,192,168,1,2); UDPpcb1 = udp_new(); udp_bind(UDPpcb1,IP_ADDR_ANY,service_port); //绑定本地IP 地址 udp_connect(UDPpcb1,&ipaddr,1000); udp_send(UDPpcb1,p); //udp_remove(upcb); //udp_sendto( upcb , pkt_buf , &dAddr , port ) ; } } pbuf_free(pkt_buf);} 实验结果:在发送指令大于5时,单片机返回数据5;但是当指令小于5时,没有返回值,且串口显示“HardFault_Handler” 这是为什么呢??????????? |
|
相关推荐
3个回答
|
|
对LWIP不熟,帮顶.
|
|
|
|
|
|
|
|
楼主解决问题了嘛?我也在做UDP卡壳了。
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2523 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2309 浏览 5 评论
3107 浏览 3 评论
2773 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2732 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
566浏览 1评论
821浏览 0评论
920浏览 0评论
585浏览 0评论
400浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 03:26 , Processed in 1.058579 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号