Skocz do zawartości

Ustawienie trybu wyjścia F4 na GPIO_MODE_AF_INPUT


korczyna

Pomocna odpowiedź

To ja może troszkę dokładniej opiszę o co chodzi. Próbowałam zgodnie z wyżej podpiętym kursem wykonać program, który za pomocą UART wyświetli na terminalu jakieś dane. W kursie, który jest napisany na F1 wykorzystano do konfiguracji RX taką komendę: gpio.Mode = GPIO_MODE_AF_INPUT;  
Ja posiadam płytkę F4, w wyniku czego, program się nie kompiluje. Brak możliwości skonfigurowania pinu jako wejścia AF.
Spróbowałam skonfigurować pin jako zwykły Input, jednak na terminalu brak jakichkolwiek danych (od razu zaznaczę, że terminal podłączony do odpowiedniego portu z odpowiednią konfiguracją transmisji). Próbowałam też znaleźć jakieś wskazówki w dokumentacji, jednak czytanie jej to dla mnie wyższy poziom abstrakcji 🙂 Angielskie fora, również dysponują terminologią, której jeszcze do końca nie rozumiem 😄  Dlatego, mam nadzieję że uzyskam od was jakieś wskazówki 🙂 

Link do komentarza
Share on other sites

@korczyna, pokaż cały kod, bo myślę, że w czym innym może być problem, że program nie działa jak chcesz. Niekoniecznie w konfiguracji pinu Rx. Dodaj też jaką masz płytkę i jaki dokładnie mikrokontroler (może Discovery F4 z kursu na Forbocie o CubeMX???).

Skoro masz wpisane "GPIO_MODE_INPUT" w poprawionej wersji to pewnie dobrze. Btw. nawet w HALu dla F1 jak zajrzymy do pliku "stm32f1xx_hal_gpio.h" to mamy tam linię:

#define  GPIO_MODE_AF_INPUT                     GPIO_MODE_INPUT          /*!< Alternate Function Input Mode         */

Także to jedno i to samo 🙂 Może gdzieś indziej masz błąd, ale to musisz kod pokazać.

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

płytka F401RE, 
terminal to Tera Term VT, uruchomiony jako administrator

#include "stm32f4xx_nucleo.h"
#include <string.h>

UART_HandleTypeDef uart;
GPIO_InitTypeDef gpio;

void send_string(char* s)
{
	HAL_UART_Transmit(&uart, (uint8_t*)s, strlen(s), 1000);
}

int main(void)
{
	HAL_Init();

	//uruchomienie zegara dla Portu A oraz USART2
	__HAL_RCC_USART2_CLK_ENABLE();
	__HAL_RCC_GPIOA_CLK_ENABLE();

	//konfiguracja lini wyjściowej TX (PA2)
	gpio.Mode = GPIO_MODE_AF_PP;
	gpio.Pin = GPIO_PIN_2;
	gpio.Pull = GPIO_NOPULL;
	gpio.Speed = GPIO_SPEED_FREQ_LOW;
	HAL_GPIO_Init(GPIOA, &gpio);

	//konfiguracja lini wejsiowej RX(PA3)
	gpio.Mode = GPIO_MODE_INPUT;
	gpio.Pin = GPIO_PIN_3;
	HAL_GPIO_Init(GPIOA, &gpio);

	//konfiguacja UART
	uart.Instance = USART2;
	uart.Init.BaudRate = 115200;
	uart.Init.WordLength = UART_WORDLENGTH_8B;
	uart.Init.Parity = UART_PARITY_NONE;
	uart.Init.StopBits= UART_STOPBITS_1;
	uart.Init.HwFlowCtl = UART_HWCONTROL_NONE;
	uart.Init.OverSampling = UART_OVERSAMPLING_16;
	uart.Init.Mode = UART_MODE_TX_RX;
	HAL_UART_Init(&uart);

	while(1){
		send_string("hello world!\r\n");
		HAL_Delay(100);
	}
}

 

Link do komentarza
Share on other sites

Nie mam przy sobie tej płytki Nucleo, żeby to sprawdzić. Mam jeden pomysł, co może być problemem. W bibliotekach do F4 struktury GPIO_InitTypeDef mają jeszcze jedno pole więcej- Alternate. No i w przypadku pinów, w których używamy Alternate Functions trzeba to pole wypełnić. Dodaj linię:

gpio.Alternate=GPIO_AF7_USART2;

Że jest takie pole jak Alternate to możesz sobie podejrzeć w headerze "... gpio.h", tam gdzie jest deklaracja tej struktury GPIO_InitTypeDef. Natomiast stałe możliwe do wpisania w to pole są w pliku "... gpio_ex.h".

  • Pomogłeś! 1
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.