主题:EM9260 共有52966人关注过本帖 |
---|
SXJ |
1楼 |
![]() |
EM9260 ![]()
请教,问题如下:
用贵公司EM9260的板子,采用串口与PC机成功实现了通讯,串口的接收程序如下: void CALLBACK OnReceive( ) { memcpy(&DatReSer[0],&ceSer.DatBuf[0],25);//char DatReSer[25]:ARM板接收PC机的数据 Number=0;//计数器清零 Numberinto=0;//计数器清零 Numberup=0;//计数器清零 Numberdown=0;//计数器清零 } 现在尝试用UDP代替串口实现此通讯,发送数据已经成功,但是在接收函数部分存在问题 写了两种函数的实现 (1)void CALLBACK OnUDPRecv() { Number=0;//计数值清零 Numberinto=0; Numberup=0; Numberdown=0; } (2)void CALLBACK OnUDPRecv(char * buf , int len) { memcpy(&AA.r_packet[0],buf,25); Number=0; Numberinto=0; Numberup=0; Numberdown=0; } 第二个函数在设断点进行单步调试时buf显示出错找不到buf。 请问这个UDP的接收函数怎么写才能代替我的串口接收函数呢? |
单帖管理 | 引用 | 回复 ![]() |
zhl |
2楼 |
![]() |
![]()
在定义回调函数的地方也要增加相应的参数,如:
typedef void (CALLBACK* ONUDPRECV)( char* buf, int len ); |
单帖管理 | 引用 | 回复 ![]() |
SXJ |
3楼 |
![]() |
![]()
我定义了的
//定义UDP接收数据事件 typedef void (CALLBACK* ONUDPRECV)(char * buf , int len); 以及 //定义数据接收事件,接收监控机发送的数据 static void CALLBACK OnUDPRecv(char * buf , int len); 但是在单步调试的时候还是说找不到buf?! |
单帖管理 | 引用 | 回复 ![]() |
x10 |
4楼 |
![]() |
![]()
估计要看具体的代码才行了,因为这是一个典型的编译问题。是否是你的定义没有被包含?
|
单帖管理 | 引用 | 回复 ![]() |