您现在的位置: 主页 > MCU > 单片机技术应用 > Uip在STM32平台移植之建立UDP链接 -
本文所属标签:
为本文创立个标签吧:

Uip在STM32平台移植之建立UDP链接 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
在STM32上通过建立UDP连接实现数据的传输。在上节提到采用的是轻型的TCP/IP协议栈Uip,在Uip协议中实现UDP连接的创建,需要以下步骤:第一步,打开支持UDP协议的配置项,支持的UDP连接的个数,参考上节

STM32上通过建立UDP连接实现数据的传输。在上节提到采用的是轻型的TCP/IP协议栈Uip,在Uip协议中实现UDP连接的创建,需要以下步骤:

本文引用地址: http://www.21ic.com/app/mcu/201806/764627.htm

第一步,打开支持UDP协议的配置项,支持的UDP连接的个数,参考上节的配置文件。

第二步,确定本地的IP地址和端口号(192.168.0.100 9999),远程主机的IP地址和端口号(192.168.0.22 9998)

#define IP_ADDR1 192
#define IP_ADDR2 168
/#define IP_ADDR3 3
/#define IP_ADDR4 100

#define UDP_REMOTE_PORT 9998
#define UDP_LOCAL_PORT 9999

第三步,UDP创建连接初始化,

void Udp_Init(void)
{
uint8_t i = 0;
uip_ipaddr_t ipaddr;
for(i = 0; i< UIP_UDP_CONNS; i++)
{
if(&uip_udp_conns[i] != NULL)
{
uip_udp_remove(&uip_udp_conns[i]);
}
}
//创建UDP连接
uip_ipaddr(ipaddr,192, 168, 0, 22);
uip_udp_conn = uip_udp_new(&ipaddr, HTONS(UDP_REMOTE_PORT));

//绑定本地端口
if(uip_udp_conn != NULL)
{
uip_udp_bind(uip_udp_conn, HTONS(UDP_LOCAL_PORT));
}
}

将此UDP初始化函数,放在uip协议栈初始化之后。

UDP应用层数据处理函数的实现

#ifndef UIP_UDP_APPCALL
#define UIP_UDP_APPCALL Udp_Appcall
#endif

void Udp_Appcall(void)

{

uint32_t i ;
u8 strloadlen = 0;
uip_ipaddr_t ipaddr;

u8 targetIp[4], netMask[4], gateway[4], macaddr[6],netip[4];
char netMaskbuff[16], macaddrbuff[20],gatewayBuf[16];
memset(str,0,100);
udpip_buf = (struct uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN];
udp_datelen = (udpip_buf->len[0] << 8) + udpip_buf->len[1] - UIP_IPUDPH_LEN;//HTONS(udpip_buf->len);
udp_appbuf = (char *)uip_appdata;

memcyp(str,udp_appbuf,udp_datelen);

myudp_send(str,strlen(str));

}

根据需要,实现对数据的处理,编译完成后,下载值目标板,复位。

第四步,将所使用的PC机的IP地址设置成192.168.0.22,打开网络调试助手,将协议类型设置为UDP,本地端口号设置成UDP_REMOTE_PORT,点击连接,即可创建UDP连接,此时即可通过在网络助手,向目标板发送UDP数据包。




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > Uip在STM32平台移植之建立UDP链接 -
 

"Uip在STM32平台移植之建立UDP链接 -"的相关文章

网站地图

围观()