반응형
안녕하세요. 소나무기운입니다.
오늘은 HM-10 BLE모듈을 다뤄 볼겁니다.
BlueTooth와 다르게 BLE는 몇가지 특징이 있지요.
요즘은 핸드폰과 연결을 위해서 BLE를 많이 사용합니다.
ㅁ BLE의 특징
1. 저소비전력
2. 낮은 통신 속도
3. 안드로이드 연결 가능, 아이폰도 연결 가능( 블루투스는 안됩니다.)
ㅁ 소스 코드 정보
1. STM32F767ZI 사용.
2. HAL Driver 사용
안드로이드용 BLE테스트 프로그램
프래이스토어에서 "BLE 터미널 검색"(이 앱은 참 광고가 많이 떠서 짜증남)
제일 많이 사용하는 BLE같습니다.
at명령어를 사용합니다.
HM-10의 AT명령어는 여기저기 설명이 많이 되어 있으니 검색해 보세요.
기본 송신과 수신의 함수입니다.
//==============================================================================
void HM10_TxCmd(char *szCmd)
{ // at command 데이터 보내기
// tx buffer clear
while (EUSART1_is_tx_done() == false)
__delay_ms(1);
// rx buffer clear
while (EUSART1_is_rx_ready() == true)
getch();
// data send
while (*szCmd != 0x00)
{
putch(*szCmd++);
CLRWDT();
__delay_ms(1);
};
}
//==============================================================================
bool HM10_RxRes(char *szCmd)
{ // 기대한 응답과 같은지 아닌지 검사
uint16_t i;
char ch;
for (i = 0; i < 500; i++)
{ // 500mS
if (EUSART1_is_rx_ready() == true)
{
ch = getch();
if (ch != *szCmd++)
{
return false;
}
if (ch == '\n')
return true;
}
__delay_ms(1);
}
return false; // time out
}
버전 확인하는 방법 AT컴맨드
//==============================================================================
void HM10_ChkVer(void)
{ //
uint8_t j;
while (1)
{
HM10_TxCmd("AT+UART?\r\n");
for (j = 0; j < 100; j++)
{
__delay_ms(10);
CLRWDT();
}
HM10_TxCmd("AT+VERS?\r\n");
for (j = 0; j < 100; j++)
{
__delay_ms(10);
CLRWDT();
}
}
}
반응형
'STMicro STM32' 카테고리의 다른 글
[작성중] STM32F103 PWM 출력 (0) | 2021.03.10 |
---|---|
[작성중] STM32F103 usart RX interrupt 설정 (0) | 2021.03.10 |
[EEPROM] M24128 I2C EEPRM 제어하기 (0) | 2020.11.01 |
[LUX센서] BH1750 사용하기. (2) | 2020.11.01 |
IAR 손상된 프로젝트 복구하기 (1) | 2020.10.28 |
댓글