WIZnet Developer Forum

[W5300] Dsp-w5300 tcp 통신에 질문있습니다

안녕하세요.

저는 DSP(TMS320F28335)와 W5300을 연결하여 PC와 TCP 통신을 구성했습니다.

시리얼통신을 이용해 DSP에 문자열을 송신하고, 받은 문자열을 TCP를 통해 PC로 보내는 루트를 만들고 있습니다.

DSP와 W5300, 그리고 PC 간 TCP 연결을 확인했고, W5300에서 PC로 문자열을 전송하는 과정에서 문제가 생겼습니다.

DSP에서 W5300을 통해 PC로 문자열을 전송하면, 각 글자의 앞에 00이 붙어 문자열이 출력되지 않는 현상이 발생합니다.

‘11 23 45’ 라는 데이터를 보낸다고 하면
’00 11 00 23 00 45’ 라는 데이터를 수신받게 됩니다.

함수 첨부드립니다.

///////////////////////////////////////////////////////
unsigned int Lan_SendWordStr(unsigned char *Lan_StrData, Uint32 tx_count)
{
Uint32 Send_count = 0x00000000;
for(Send_count = 0; Send_count < tx_count; Send_count++)
*Sn_TX_FIFOR_0 = *(Lan_StrData + Send_count);

tx_count = (tx_count << 1);
*Sn_TX_WRSR_0_0 = (unsigned char)((tx_count & 0x00010000) >> 16);	//(tx_count << 1) = (tx_count * 2)
*Sn_TX_WRSR_0_2 = (unsigned char)(tx_count & 0x0000FFFF);			//(tx_count << 1) = (tx_count * 2)
*Sn_CR_0 = Sn_CR_SEND;												// SOCK_RECV(0x14) : Recevied data end message
while(*Sn_CR_0 != 0x0000); 											// Wait unit the command is cleared by W5300
while(*Sn_IR_0 == Sn_IR_SEND_OK);									// Sn_IR = SEND_OK
*Sn_IR_0 = Sn_IR_SEND_OK;											// Clear Sn_IR(SEND_OK)	Sn_CR_SEND = 0x0010
*Sn_IMR_0 = 0x0000;
return TRUE;

}
//////////////////////////////////////////////////////////

한글자씩 전송하는 과정에서 문장 끝맺음 비트가 붙어서 그런 것이 아닐까하고 의심하고 있습니다.

원인이 무엇인지, 혹시 해결할 방안이 있는지 조언 해주시면 감사하겠습니다.

아직 초보단계라 혼자 문제를 해결하기엔 어려움이 있어 질문 드립니다. 좋은 하루 되세요 :slight_smile:

아예 다른 함수를 사용하여 해결했습니다.
word_str이 아니라 Byte_str으로 전송하니 문자 00없이 돌아가는 것을 확인했습니다.

해결해서 다행이네요 ~!
질문있으면 언제든지 올려주시기 바랍니다!

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.