接收处理部分:
/********************************************************************************/
/* function : vm_printf() */
/* created : hw-chen */
/* descript : 从VM串口输出信息 */
/********************************************************************************/
void vm_printf(char *string, ...)
{ unsigned char i,length;
char buffer[0x40];
va_list arguments;
va_start(arguments,string);
vsprintf(buffer,string,arguments);
va_end(arguments);
length="strlen"(buffer);
for(i=0x0;i if((xmit_vm_wr+0x1)==xmit_vm_rd)
{ break;
}
xmit_vm_buffer[xmit_vm_wr]=buffer;
xmit_vm_wr++;
xmit_vm_wr&=VM_XMIT_MSK;
}
return;
}
/********************************************************************************/
/* function : recv_SBUF_mdata_process() */
/* created : hw-chen */
/* descript : VM串口接收数据处理 */
/********************************************************************************/
void recv_SBUF_mdata_process(void)
{ if(recv_vm_flags==0x0)
{ return;
}
recv_vm_flags=0x0;
if((recv_vm_sbuff==0x8)&&(recv_vm_wr>0x0)){ /* 处理退格 */
recv_vm_wr--;
vm_printf("%c",0x8);
vm_printf("%c",' ');
vm_printf("%c",0x8);
return;
}
recv_vm_buffer[recv_vm_wr]=recv_vm_sbuff; /* 接收处理 */
recv_vm_wr++;
if((recv_vm_sbuff=='\r')||(recv_vm_sbuff=='\n'))
{ recv_command_process();
}
if((recv_vm_wr>=VM_RECV_MSK))
{ recv_vm_wr=0x0;
}
else
{ vm_printf("%c",recv_vm_sbuff); /* 回显 */
}
}
/********************************************************************************/
/* function : recv_command_process() */
/* created : hw-chen */
/* descript : VM串口接收数据处理 */
/********************************************************************************/
void recv_command_process(void)
{ recv_vm_buffer[recv_vm_wr]=0x0;
//* 添加自己的处理函数
recv_vm_wr=0x0;
}
文章评论(0条评论)
登录后参与讨论