본문 바로가기
임베디드 개발/STM32 (ARM Cortex-M)

STM32 ] 블루투스 모듈 MLT-BT05 사용하기 / 메시지 주고받기 , AT 커맨드

by eteo 2022. 6. 19.

USART3 핀 설정

 

 

 

 

USART2 핀, 블루투스 모듈에 연결

 

 

 

 

 

보드-PC간 보드레이트 115200bps

 

 

 

 

 

블루투스-보드간 보드레이트 9600bps

 

 

 

 

 

 

 

MLT-BT05 4.0 모듈의 공장출고 시 default 보드레이트가 9600bps이다.

 

 

 

 

둘다 NVIC Settings에서 인터럽트를 켜준다.

 

 

 

일단 전역변수 선언 구간에 따로 uart 데이터를 받을 변수를 선언해준다.

/* USER CODE BEGIN PV */
uint8_t rx3_data;
uint8_t rx2_data;
/* USER CODE END PV */

 

 

 

USER CODE BEGIN 2 에서 인터럽트를 enable 한다.

  /* USER CODE BEGIN 2 */
  HAL_UART_Receive_IT(&huart3, &rx3_data, sizeof(rx3_data));
  HAL_UART_Receive_IT(&huart2, &rx2_data, sizeof(rx2_data));
  /* USER CODE END 2 */

 

 

 

 

HAL_UART_RxCpltCallback 함수

/* USER CODE BEGIN 4 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
	if(huart->Instance==USART3){

		HAL_UART_Transmit(&huart2, &rx3_data, sizeof(rx3_data), 10);
		HAL_UART_Receive_IT(&huart3, &rx3_data, sizeof(rx3_data));

	}else if(huart->Instance==USART2){

		HAL_UART_Transmit(&huart3, &rx2_data, sizeof(rx2_data), 10);
		HAL_UART_Receive_IT(&huart2, &rx2_data, sizeof(rx2_data));
		
	}
}
/* USER CODE END 4 */

USART3으로 데이터가 들어오면 해당 데이터를 USART2로 전송하고 USART2로 데이터가 들어오면 해당 데이터를 USART3으로 전송한다.

 

 

이렇게하고 핸드폰에 Serial Bluetooth Terminal 앱을 깔아 모듈을 잡으면 PC의 시리얼 터미널에서 보낸 데이터를 어플에서 확인하고 어플에서 보낸 데이터를 PC의 터미널에서 확인 할 수 있다.

 

모듈에는 빨간색 LED가 달려있는데 이전에 사용해봤던 HC-05와 사용법이 흡사하다. LED가 빠르게 점멸하면 페어링을 시도중이고 점멸을 멈추고 계속 켜진 상태를 유지하면 페어링에 성공했다는 뜻이다. 전원을 뽑고 오른쪽 아래에 있는 버을 누른채로 다시 전원을 공급하면 LED가 느리게 점멸하면서 AT Command가 가능한 모드로 들어간다.

 

 

 

 

 

 

MLT-BT05 모듈의 datasheet

MLT-BT05-AT-commands-TRANSLATED.pdf
0.07MB

 

 

 

AT command는 \r\n과 같이 보내고 명령어 바로 뒤에 파라미터를 쓰면 세팅을 할 수 있다.

 

 

 

 

 

특이했던건 테라텀 말고 다른 시리얼 터미널 사용시 AT 커맨드가 안먹혔다.

 

 

 

위와 같이 설정 후 빨간 LED가 천천히 점멸하는 AT 커맨드 상태에서 터미널에 명령어를 친다.