www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀] 于lwIP協(xié)議中的UDP協(xié)議,用單片機做一個服務器,接受電腦的指令然后返回數(shù)據(jù)。以下是我的代碼/*****************************************************函數(shù)功能:初始化udp,選定通信端口,建立連接機制

于lwIP協(xié)議中的UDP協(xié)議,用單片機做一個服務器,接受電腦的指令然后返回數(shù)據(jù)。以下是我的代碼
/****************************************************
*函數(shù)功能:初始化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;
}

//通知協(xié)議棧當99端口有連接請求時調(diào)用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); //根據(jù)將要發(fā)送的數(shù)據(jù)大小開辟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);
}
實驗結(jié)果:在發(fā)送指令大于5時,單片機返回數(shù)據(jù)5;但是當指令小于5時,沒有返回值,且串口顯示“HardFault_Handler”
這是為什么呢???????????

void UDPceshi_recv(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 *UDPpcb;

pValiData=pkt_buf->payload;

if( pkt_buf != NULL )
{

//if(*pValiData > 0x05) //接收到的指令碼大于5,返回原指令
// udp_sendto( upcb ,pValiData , &ipaddr , 70 ) ;
// else
// {
// p = pbuf_alloc(PBUF_RAW,sizeof(data),PBUF_RAM); //根據(jù)將要發(fā)送的數(shù)據(jù)大小開辟pbuf
// p->payload=(void *)data;

// IP4_ADDR(&ipaddr,192,168,1,125);
UDPpcb= udp_new();
udp_bind(UDPpcb,IP_ADDR_ANY,60); //綁定本地IP 地址
udp_connect(UDPpcb,&ipaddr,1000);
// udp_send(UDPpcb1,p);
//udp_remove(upcb);
udp_sendto( upcb , pkt_buf , &dAddr , port ) ;
}

pbuf_free(pkt_buf);
// else
// {
// udp_remove(upcb);
// }
}

{
// uint8_t i=0;
struct ip_addr destAddr = *addr;
if(p != NULL) /* 如果收到的數(shù)據(jù)不為空 */
{

//pbuf_copy_partial(p, UDPData, p->len, 0);
udp_sendto(upcb,p,&destAddr,port); /* 將收到的數(shù)據(jù)再發(fā)送出去 */
pbuf_free(p); /* 釋放緩沖區(qū)數(shù)據(jù) */
}
}

我用PC機周期性地通過UDP給lm3s8962發(fā)數(shù)據(jù),lm3s8962處理完后,再通過UDP發(fā)送給PC機。

無論PC機的周期設為多大,發(fā)現(xiàn)lm3s8962只能收到一半pc機發(fā)送的數(shù)據(jù)。

假如我分別創(chuàng)建兩個UDP socket,一個用于UDP數(shù)據(jù)接收,一個用于UDP數(shù)據(jù)發(fā)送。接收和發(fā)送都正常。

請問下各位大俠,這是什么原因?先謝過了。

代碼如下:

void UDPNetInit(void)
{
struct ip_addr ipaddr1;
IP4_ADDR(&ipaddr1,192,168,0,125);
//
// Start listening for incoming TFTP requests.
//
UDPpcb = udp_new();
udp_recv(UDPpcb, UDPDataRecv, NULL);
udp_bind(UDPpcb,IP_ADDR_ANY,UDPPRO_PORT); /* 綁定本地IP地址 */
udp_connect(UDPpcb,&ipaddr1,UDPPRO_PORT); /* 連接遠程主機 */

}

UDPDataRecv函數(shù)用于UDP數(shù)據(jù)接收,在另外一個地方調(diào)用udp_send()作為UDP數(shù)據(jù)發(fā)送。


本站聲明: 本文章由作者或相關機構(gòu)授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉