Skocz do zawartości

kulawikm

Użytkownicy
  • Zawartość

    12
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O kulawikm

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. A co myślicie o Domoticzu? Może to jest pomysł na połączenie wszystkich urządzeń w domu?
  2. Usunąłem projekt i zrobiłem nowy w kolejności jak w kursie i błąd zniknął. I to samo na 2 kompie - tam też nie miałem błędu. Gdy dodałem nowe LEDy w CubeMX to znowu nie mógł rozpoznać zmiennych LED_Green_GPIO_Port, LED_Green_Pin itd. dopiero po odświeżeniu plików projektu błędy zniknęły. Kolejna rzecz to zadanie domowe: Napisałem sam, później wgrałem plik binarny z kursu i nie przełączało mi diod tak płynnie jak na filmie z kursu. Wydaje mi się, że brakuje filtrowania sygnału z przycisku lub funkcji Debounce. Czy na schemacie płytki (UM1842 na str. 33 - schemat przycisku PA0) przy C36 [NA] nie oznacza not available - czyli nie ma filtrowania sygnału z przycisku i dlatego po naciśnięciu przycisku program przechodzi o kilka kroków na raz (zmienna state). Podzieli się ktoś spostrzeżeniami?
  3. U mnie to samo z błędem Symbol 'SysTick_IRQn' could not be resolved main.c /01_GPIO/Src line 129 ale o dziwo program da się skompilować i po wgraniu do procka działa. Gdy wcisnę Ctrl+ lewy p. myszy na 'SysTick_IRQn' to pojawia się poniższa ramka. Ale dlaczego mamy błąd i jak się go pozbyć??
  4. Po podłączeniu zasilania migają diody LED LD3-LD6. Po naciśnięciu niebieskiego przycisku diody sygnalizują ruch płytki w daną stronę. Edit: Dlaczego w tym kursie używacie czystego eclipse a nie AC6 System Workbench for STM32?
  5. Witam, jadę z kursem STM32 ale napotkałem na pewien problem. Chodzi o funkcję printf. Jeśli piszę stały ciąg znaków wszystko jest OK, ale jeśli chcę wstawić zmienną to procek się zawiesza i na terminalu już nie pojawia się linia ze zmienną. Tak jakby formatowanie tekstu nie działało. Poniżej testowy program: #include "stm32f4xx.h" #include <stdio.h> void send_char(char c) { while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); USART_SendData(USART2, c); } int __io_putchar(int c) { if (c=='\n') send_char('\r'); send_char(c); return c; } int main(void) { int a=123; GPIO_InitTypeDef gpio; USART_InitTypeDef uart; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA |RCC_AHB1Periph_GPIOB |RCC_AHB1Periph_GPIOC| RCC_AHB1Periph_GPIOD, ENABLE); GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2); gpio.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; // Konfiguracja RS232 gpio.GPIO_Mode = GPIO_Mode_AF; gpio.GPIO_OType = GPIO_OType_PP; gpio.GPIO_PuPd = GPIO_PuPd_UP; gpio.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &gpio); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); USART_StructInit(&uart); uart.USART_BaudRate = 115200; USART_Init(USART2, &uart); USART_Cmd(USART2, ENABLE); printf("Hello World!\n"); printf("Zmienna a = %d \n", a); //TU JEST PROBLEM !!! while(1){ printf("Napis 2!\n"); } } Program zawiesza się po wypisaniu na terminal "Hello World!". Napisu "Napis 2!" już w ogóle nie wyświetla. Jeżeli usunę linię: printf("Zmienna a = %d \n", a); to program wchodzi do pętli while(1). Nie wiem dlaczego nie mogę formatować tekstu. Korzystam z płytki STM32F4 - discovery z konwerterem USB<-->RS232. Program z kursu przerobiony pod tą płytkę. Środowisko System Workbench for STM32. Ktoś pomoże?
  6. Ja korzystam z STM32F4 - discovery i dla tego procka wygląda to tak: //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); - dla STM32F4 wygląda tak: RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE); i niżej: //GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13); - dla STM32F4 wygląda tak: SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0); Może ci to pomoże.
  7. Witam, jadę z kursem ale napotkałem na pewien problem. Chodzi o funkcję printf. Jeśli piszę stały ciąg znaków wszystko jest OK, ale jeśli chcę wstawić zmienną to procek się zawiesza i na terminalu już nie pojawia się linia ze zmienną. Tak jakby formatowanie tekstu nie działało. Poniżej testowy program: #include "stm32f4xx.h" #include <stdio.h> void send_char(char c) { while (USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET); USART_SendData(USART2, c); } int __io_putchar(int c) { if (c=='\n') send_char('\r'); send_char(c); return c; } int main(void) { int a=123; GPIO_InitTypeDef gpio; USART_InitTypeDef uart; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA |RCC_AHB1Periph_GPIOB |RCC_AHB1Periph_GPIOC| RCC_AHB1Periph_GPIOD, ENABLE); GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2); GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2); gpio.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3; // Konfiguracja RS232 gpio.GPIO_Mode = GPIO_Mode_AF; gpio.GPIO_OType = GPIO_OType_PP; gpio.GPIO_PuPd = GPIO_PuPd_UP; gpio.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &gpio); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE); USART_StructInit(&uart); uart.USART_BaudRate = 115200; USART_Init(USART2, &uart); USART_Cmd(USART2, ENABLE); printf("Hello World!\n"); printf("Zmienna a = %d \n", a); while(1){ printf("Napis 2!\n"); } } Program zawiesza się po wypisaniu na terminal "Hello World!". Napisu "Napis 2!" już w ogóle nie wyświetla. Jeżeli usunę linię: printf("Zmienna a = %d \n", a); to program wchodzi do pętli while(1). Korzystam z płytki STM32F4 - discovery z konwerterem USB<-->RS232. Program przerobiony pod tą płytkę. Ktoś pomoże?
  8. Czy w przykładzie z kursu nie trzeba dołączać pliku nagłówkowego: #include "stdio.h" bo bez tego dostaję ostrzeżenie: ../src/main.c:64:3: warning: implicit declaration of function 'printf' [-Wimplicit-function-declaration] co oznacza ten komunikat?
  9. Dzięki za fajny tutorial. Dla mnie to już 3 podejście do STM32. Posiadam płytkę STM32F4 Discovery i na niej testowałem program i debuger. Wszystko działa idealnie. Jeszcze raz dzięki i czekam na kolejne części.
×
×
  • Utwórz nowe...