인프런 커뮤니티 질문&답변

Seyoung Kim님의 프로필 이미지

작성한 질문수

HAL, CubeMX, TrueSTUDIO를 이용한 STM32F4 무료 강좌

UART Rx Interrupt (수신인터럽트)

HAL_UART_Transmit_IT 문제

20.05.22 22:05 작성

·

751

0

stm32 프로그래밍강의에  많이 도움을 받고 있습니다.

아래는 문제없이 rx2_data에 5개를 받았을때 출력을 문제없이 합니다. HAL_UART_Transmit()를 써도 문제가 없습니다

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance == USART2)
    {
        HAL_UART_Receive_IT(&huart2, &rx2_data, 5);
        HAL_UART_Transmit_IT(&huart2, &rx2_data, 5);

     }

}
문제는 rx2_data 에 받은 데이타를 다른 배열(포인터)에 할당하면 그 다음부터 먹통이 되어버립니다.

        HAL_UART_Receive_IT(&huart2, &rx2_data, 5);
        for(i=0;i<5;i++)
        {
            rx2_buffer[index++]=rx2_data[i];
        }
        HAL_UART_Transmit_IT(&huart2, &rx2_data, 5);

문제가 무엇일까요?

답변 1

0

ChrisP님의 프로필 이미지
ChrisP
지식공유자

2020. 05. 23. 01:17

안녕하세요! 유튜브 질문에도 답글 드렸듯이,

배열의 인덱스가 넘어가면서 생기는 문제일 수 있습니다.

따라서 index 배열을 0으로 초기화하는 부분이 필요합니다.

한번 확인해보세요!