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
AT command는 \r\n과 같이 보내고 명령어 바로 뒤에 파라미터를 쓰면 세팅을 할 수 있다.
특이했던건 테라텀 말고 다른 시리얼 터미널 사용시 AT 커맨드가 안먹혔다.
위와 같이 설정 후 빨간 LED가 천천히 점멸하는 AT 커맨드 상태에서 터미널에 명령어를 친다.
'임베디드 개발 > STM32 (ARM Cortex-M)' 카테고리의 다른 글
STM32 ] TIM 2,3,4 인터럽트를 사용하여 LED 1,2,3을 각각 0.1, 0.5, 1초 간격으로 토글하는 예제 (0) | 2022.06.29 |
---|---|
STM32 ] 플래시 메모리 지우고 다시 쓰기 + 리틀 엔디안과 빅 엔디안 + ST-link utility 사용법 (0) | 2022.06.28 |
STM32 ] RTC 와 LCD 모듈을 사용한 알람시계 구현 (2) - 더블클릭 기능 추가 (0) | 2022.06.19 |
STM32 , UART 통신으로 4 digit 7 segment FND 실시간 제어하기 2편 (0) | 2022.06.18 |
STM32 ] Timer 인터럽트를 사용하여 ADC 값 받기 + 그래프 보면서 디버깅하는 팁 (0) | 2022.06.17 |