본문 바로가기

[ST_MICRO]/STM32H7

[STM32H7-RP] 네트웍 카메라 테스트 - W5300을 웹서버를 이용한 영상 전송

STM32F4-RP 보드에서 W5300을 웹서버를 이용한 영상 전송 테스트 코드로 테스트 하면 문제가 발생한다.

STM32H7 에서는 기존 코드 구동시 계속 문제들이 발생하는것 같다.

 

우선 이미지 파일을 데이터를 보내 보자.

HTML 요청이 있을때 데이터 전송은 하지만 한번 전송하고 끝나는것 같다.

 
> HTTPSocket[2] : HTTP Method GET
> HTTPSocket[2] : Request Type = 4
> HTTPSocket[2] : Request URI = cam_img.jpg
image displey -> cam_img.jpg
image send

 

 

 

STM32F4 에서 정상적으로 전송될 경우

 
> HTTPSocket[3] : HTTP Method GET
> HTTPSocket[3] : Request Type = 4
> HTTPSocket[3] : Request URI = ledr_of.jpg
 
> send_http_response_header
> HTTPSocket[3] : [Send] HTTP Response Header [ 67 ]byte
 
> send_http_response_body
> HTTPSocket[3] : [Send] HTTP Response body [ 2047 ]byte
> HTTPSocket[3] : [Send] HTTP Response body [ 972 ]byte

 

 

데이터 보낼때 시간지연을 주니 더 많은 데이터를 보내는것 같다.
if(gFlagPicture)
	{
		gFlagPicture = 0;
		http_status = STATUS_OK;

		send_http_response_header(s, PTYPE_JPEG, file_len, http_status);

		printf("image send\r\n");

		file_len = DATA_BUF_SIZE-1;
		send(s, &ledr_of[0], file_len);


		gettime = get_httpServer_timecount();
		// Check the TX socket buffer for End of HTTP response sends
		while(getSn_TX_FSR(s) != (getSn_TxMAX(s)))
		{
			if((get_httpServer_timecount() - gettime) > 3)
			{
				#ifdef _HTTPSERVER_DEBUG_
				printf("> HTTPSocket[%d] : [State] STATE_HTTP_REQ_DONE: TX Buffer clear timeout\r\n", s);
				#endif
				break;
			}
		}

		file_len = 3019-DATA_BUF_SIZE-1;
		send(s, &ledr_of[0]+DATA_BUF_SIZE-1, file_len);
		break;
	}

 

너무 빨라서 그런가? 이것도 문제 인데...

이제 정상적으로 전송이 된다.

반응형