Xenon02 Napisano 6 stycznia Udostępnij Napisano 6 stycznia 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 More sharing options...
mgala 11 stycznia Udostępnij 11 stycznia 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 More sharing options...
kaczakat 21 stycznia Udostępnij 21 stycznia 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 More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »