Skocz do zawartości

HC-06 nie odpowiada w STM32


Xenon02

Pomocna odpowiedź

Witam !

Mam problem z Bluetoothem w STM32, korzystam aktualnie z płytki Nucleo-L073RZ oraz z modułu HC-06. 
Bluetooth nie jest do niczego podłączony ponieważ miga dioda, i próbowałem wysłać komendę AT przez UARTA do płytki HC-06. 

Żadna kombinacja nie dawała rezultatów, zmieniając Bound Rate'a z 9600 na większa nic nie dawało, zmieniłem domyślne no pull up no pull down na ->  pull up i to też nic nie dało, oraz połączyłem to tak ja na obrazku  : 

https://www.martyncurrey.com/arduino-and-hc-06-zs-040/

Czyli dodałem dzielnik do RX bo wiem że tam 5V nie mogę podać. Ale z dzielnikiem jak i bez też ten sam efekt 

Oto kod do wysłania komendy AT, nawet jak wyślę samo AT bez \r\n też nie działa

 

// Send AT command to HC-06
	      char atCommand[] = "AT\r\n";
	      HAL_UART_Transmit(&huart2, (uint8_t *)atCommand, sizeof(atCommand)-1, 500);

	      // Add a delay to allow time for the HC-06 to process the command
	      HAL_Delay(1000);

	      // Handle the response from HC-06 (you may need to implement a function to receive and process data)
	      // For simplicity, you can use a blocking receive function like HAL_UART_Receive.

	      // Example of receiving response
	      HAL_UART_Receive(&huart2, (uint8_t *)response, sizeof(response)-1, 500);
	      response[sizeof(response)-1] = '\0'; // Null-terminate the string
	      printf("%s --\n", response);

Tutaj ustawienie tego co mam w UART :

 

static void MX_USART2_UART_Init(void)
{

  /* USER CODE BEGIN USART2_Init 0 */

  /* USER CODE END USART2_Init 0 */

  /* USER CODE BEGIN USART2_Init 1 */

  /* USER CODE END USART2_Init 1 */
  huart2.Instance = USART2;
  huart2.Init.BaudRate = 9600;
  huart2.Init.WordLength = UART_WORDLENGTH_8B;
  huart2.Init.StopBits = UART_STOPBITS_1;
  huart2.Init.Parity = UART_PARITY_NONE;
  huart2.Init.Mode = UART_MODE_TX_RX;
  huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  huart2.Init.OverSampling = UART_OVERSAMPLING_16;
  huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
  huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
  if (HAL_UART_Init(&huart2) != HAL_OK)
  {
    Error_Handler();
  }
  /* USER CODE BEGIN USART2_Init 2 */

  /* USER CODE END USART2_Init 2 */

}



Dodatkowa informacja jak dam HAL_MAX_Delay zamiast 500 albo inne wartości to utknął gdzieś w sprawdzaniu czy nie przekroczył tego czasu czyli tam gdzieś w HAL_Error. I już kompletnie nie wiem o co chodzi. 

Link do komentarza
Share on other sites

Z tego co pamiętam, i na szybko znalazłem:

1. Sprawdź na 100% czy potrzebujesz dzielników napięcia, moja wersja hc ma 3.3V na UART, STM tez ma 3.3, więc same kabelki wystarczą

2. Baudrate do trybu AT to 38400.

3. Żeby wejść w tryb AT musiałem zdaje się przy starcie modułu albo jakiś przycisk przytrzymać albo któryś pin wysterować (masa albo +VCC, teraz nie pamiętam)

Link do komentarza
Share on other sites

W przykładzie dzielnik napięcia miałeś przy podłączeniu do NANO, który pracuje na 5V, STM32 ma logikę 3.3V tak samo jak logika HC-06 i żaden dzielnik napięcia nie jest potrzebny. I to nie jest tak, że możesz sobie testować z/lub nie, trzeba wiedzieć co się robi, bo jakby faktycznie był potrzebny to uszkodzeniu pinu już nic więcej nie zrobisz.

Najprościej test z komendą AT wykonać na terminalu PC z konwerterem UART/USB, nie będziesz miał wątpliwości czy twój program działa czy nie.

Kupiłem sobie jeden HC-06 do testów, HC-05 odpowiadały komendami AT tylko ze znakami NL/CR, a HC-06 tylko bez tych znaków. Ale jak się zachowuje moduł zależeć będzie jaki ma tam firmware wgrany. Są różne komendy do ustawienia prędkości w obu modułach, nie wzoruj się na tych dla HC-05.

Tu jest opis różnic https://www.instructables.com/AT-command-mode-of-HC-05-Bluetooth-module/   i na końcu kilka komend AT dla HC-06.

Jak w terminalu potwierdzisz, że moduł BT działa, jaką ma prędkość (mój miał 9600) i jaki styl wysłania AT mu pasuje, to wtedy wróć do swojego programu.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.