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
2020. 05. 23. 01:17
안녕하세요! 유튜브 질문에도 답글 드렸듯이,
배열의 인덱스가 넘어가면서 생기는 문제일 수 있습니다.
따라서 index 배열을 0으로 초기화하는 부분이 필요합니다.
한번 확인해보세요!