在第三个部分的串口到以太网,我们将看看数据接到以太网的部份。因为我们不使用中断任何以太网的数据的方法,我们基本上需要检查是否有任何以太网数据存储在收发时的缓冲区。如果有数据在這個RX缓冲区時,我们会印出以太网的数据。第一步是先在内部使用getSn_RX_RSR的功能,替RX为缓冲区检查数据的数目。在RX缓冲区,这个函数会申报字节数的。如果这个值大于0,这意味着您可以使用recv函数来获取数据。
void lan_to_rs232()
{
uint16 xdata chk_length; // length checker
uint16 xdata rcv_length; // length of data received
uint16 xdata idx; // for loop index
chk_length = getSn_RX_RSR(0); // get length of data in lan receive buffer
if(chk_length > 0) // check if there is data in lan receive buffer
{
if(chk_length > MAX_BUF_SIZE) chk_length = MAX_BUF_SIZE;
//check if length of lan received buffer is more than LAN_RX_BUF
rcv_length = recv(0,LAN_RX_BUF,chk_length); //receive data
for(idx = 0; idx < rcv_length; idx++)
{
PutByte(LAN_RX_BUF[idx]); // print result
}
}
}
我希望你喜欢!
文章评论(0条评论)
登录后参与讨论