Skocz do zawartości

STM32F103 Nucleo + HC-06 brak komunikacji w RealTerm


swift

Pomocna odpowiedź

Witam. Mam problem z prawidłową komunikacją pomiędzy portem szeregowym w komputerze i programem Realterm a płytką Nucleo połączoną z modułem bluetooth HC-06. Po ustawieniu w Realterm odpowiednich wartości i otwarciu portu dioda w module zaczyna sygnalizować połączenie, w Realterm zapalają się CTS i DSR, niestety program nie otrzymuje żadnych danych.

Kod źródłowy:

#include "stm32f10x.h"


void sendchar(char c)
{
while(!USART_GetFlagStatus(USART3,USART_FLAG_TXE));
USART_SendData(USART3,c);
}

int main(void)
{

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);


GPIO_InitTypeDef gpio;
GPIO_StructInit(&gpio);
gpio.GPIO_Mode=GPIO_Mode_AF_PP;
gpio.GPIO_Pin=1<<10;
GPIO_Init(GPIOC,&gpio);
gpio.GPIO_Mode=GPIO_Mode_IN_FLOATING;
gpio.GPIO_Pin=1<<11;
GPIO_Init(GPIOC,&gpio);

GPIO_PinRemapConfig(GPIO_PartialRemap_USART3,ENABLE);

USART_InitTypeDef uart;
USART_StructInit(&uart);
uart.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
uart.USART_Parity=USART_Parity_No;
uart.USART_StopBits=USART_StopBits_1;
uart.USART_WordLength=USART_WordLength_8b;
uart.USART_BaudRate=9600;
USART_Init(USART3,&uart);
USART_Cmd(USART3,ENABLE);

char x='x';
for(;;)
{
	sendchar(x);
}
}
Link do komentarza
Share on other sites

Jak dokładnie realizujesz komunikacje ? tzn do Nucleo masz podłączony moduł bluetooth HC-06 i od strony portu szeregowego konwerter usb-uart i HC 06 ? i zamierzasz nadawać coś z terminala RealTerm ???

Link do komentarza
Share on other sites

Do pinów uart Nucleo jest podłączony HC-06, a w laptopie dodałem urządzenie Bluetooth HC-06 i został mu przydzielony port szeregowy. Tak, finalnie chciałbym nadawać z terminala Realterm.

Link do komentarza
Share on other sites

Realizowałem ostatnio z powodzeniem komunikacje bluetooth tylko, że od strony komputera miałem konwerter usb uart podłączony z modułem HC06 jako slave, a od strony nucleo moduł HC05 jako master i wszystko działa. W Twoim przypadku HC - 06 jest slavem, a PC masterem, wiec trzeba to wszystko sparować, żeby działało. Po za tym w konfiguracji UARTA w kodzie brakuje ustawienia pola trybu wysyłania i odbierania danych. tzn.

 uart.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; 

. Może trzeba jeszcze skonfigurować moduł HC 06 w trybie AT, jak dobrze pamiętam domyślnie prędkość transmisji jest wartość 9600 baud rate (sprawdź w dokumentacji lub inna). Oba urządzenia muszą pracować na tej samej prędkości transmisji. Oprócz tego wysyłając coś do HC 06 nie używa się znaków CR LF z realterm lub tylko któryś ze znaków, testowałem i pamiętam, że to też miało znaczenie. Dioda modułu Hc 06 po sparowaniu świeci sygnałem ciągłym, czekając na sparowanie migocze.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Użyłem górnej części płytki Nucleo, żeby skorzystać z niej jak z konwertera usb-uart, ale po odpaleniu terminala na ekranie odbieram tylko jakieś śmieci. W ten tryb AT też nijak wejść nie potrafię.. wejście EN spięte z 3.3V, wysyłać komendę AT próbowałem zarówno po Bluetooth jak i tym konwerterze i żadnego odzewu. A przy otwarciu portu w komputerze dioda u mnie zmienia stan z migotania na przerwa-2 mignięcia-przerwa.

Link do komentarza
Share on other sites

Prawdopodobnie HC-06 masz ustawiony na inny baudrate niż 9600. Musisz wysyłać komendę AT na kolejnych wspieranych baudratach i zobaczyć na którym dostajesz odpowiedź. Ja u siebie wysyłałem komendy AT z PC przy użyciu konwertera USB-UART

Link do komentarza
Share on other sites

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ę »
×
×
  • 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.