Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'stm32f103'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino, ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 3 wyniki

  1. Dzień dobry, Jest to mój pierwszy wpis na forum, szukałem wcześniej podobnego tematu ale go nie znalazłem, tak więc zakładam nowy. Steruję silnikiem DC za pomocą sterownika L293D, połączenie jest poprawne, steruję "ręcznie" silnikiem , więc od tej strony wszystko działa, problem pojawił się przy programowaniu STMki. Korzystając z kursu STM32 F1 HAL #4 porty GPIO próbuję wystawić sygnał sterujący silnikiem lecz pozostaje on w stanie wysokim. Jeżeli zmienię PIN na diodę LED PC13 to ta działa poprawnie. Co zrobić aby dany PIN zmieniał swój stan? while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOA, GPIO_PIN_15, GPIO_PIN_RESET); HAL_Delay(500); } /* USER CODE END 3 */ }
  2. W zasilanym z baterii urządzeniu na STM32F103 mam kartę SD, i OLED. Po czasie bezczynności usypiam OLED i mikrokontroler. Niestety pobór prądu jest duży, ok 23mA. Zacząłem szukać przyczyny, okazało się, ze gdy wyjmę kartę SD, pobór prądu spada do 160uA. Po wyjęciu OLED pobór prądu spada do 60uA. Pomijając trochę za duży ale akceptowany pobór prądu przez mikrokontroler uśpieni lub jakiś element zewnętrzny duży problem mam z karta SD. Czasem zdarzy się, że nie pobiera dużo prądu (wszystko razem ok 1mA, z czego wynika, ze karta SD 840uA). Jak zmniejszyć pobór prądu przez kartę SD? Byłem przekonany, że gdy CS=H, to karta pobiera minimum energii (mam rezystor podciągający CS do zasilania) ale wygląda na to, że nie. Na wszelki wypadek odmontowuję kartę (nie sprawdziłem jeszcze, co tak naprawdę FatFS wtedy robi) ale to nic ni cdaje. Czy kartę trzeba uśpić jakąś komendą? Nic takiego nie znalazłem.
  3. Siemka wszystkim. Mam takowy problemik, że odczytując dane z akcelerometru odczyt na osi Z nie wskazuje realnej wartości przyśpieszenia. Na obrazku mamy odczyty z poszczególnych osi (w jednostkach G). Widać że na osi Z jest odczyt przekraczający 1G. Gdy obrócę sensor o 180 stopni tak aby oś Z zmieniła zwrot to odczyt na niej wynosi poniżej 1G. Wynika z tego jakby do ozi Z był dodany pewien offset. Czujnik to MPU 9255. Z czego to może wynikać i jak temu zaradzić? Poniżej wstawiam też kodzik. Dzięki za pomoc //settings accelerometer and gyroscope HAL_I2C_Mem_Write(&i2c, 0xD0, 27, I2C_MEMADD_SIZE_8BIT, &Settings,1,1000); HAL_I2C_Mem_Write(&i2c, 0xD0, 28, I2C_MEMADD_SIZE_8BIT, &Settings,1,1000); HAL_I2C_Mem_Write(&i2c, 0xD0, 55, I2C_MEMADD_SIZE_8BIT, &BypassEnable,1,1000); //Power Down mode HAL_I2C_Mem_Write(&i2c, 0x18, 0x0A, I2C_MEMADD_SIZE_8BIT, &SettingsM,1,1000); HAL_Delay(100); //16 bit output mode 2 HAL_I2C_Mem_Write(&i2c, 0x18, 0x0A, I2C_MEMADD_SIZE_8BIT, &SettingsL,1,1000); //16 bit 8Hz while (1) { //A X HAL_I2C_Mem_Read(&i2c, 0xD0, 59, I2C_MEMADD_SIZE_8BIT, &DAHx,1,100); HAL_I2C_Mem_Read(&i2c, 0xD0, 60, I2C_MEMADD_SIZE_8BIT, &DALx,1,100); //A Y HAL_I2C_Mem_Read(&i2c, 0xD0, 61, I2C_MEMADD_SIZE_8BIT, &DAHy,1,100); HAL_I2C_Mem_Read(&i2c, 0xD0, 62, I2C_MEMADD_SIZE_8BIT, &DALy,1,100); //A Z HAL_I2C_Mem_Read(&i2c, 0xD0, 63, I2C_MEMADD_SIZE_8BIT, &DAHz,1,100); HAL_I2C_Mem_Read(&i2c, 0xD0, 64, I2C_MEMADD_SIZE_8BIT, &DALz,1,100); //G X HAL_I2C_Mem_Read(&i2c, 0xD0, 67, I2C_MEMADD_SIZE_8BIT, &DGHx,1,100); HAL_I2C_Mem_Read(&i2c, 0xD0, 68, I2C_MEMADD_SIZE_8BIT, &DGLx,1,100); //G Y HAL_I2C_Mem_Read(&i2c, 0xD0, 69, I2C_MEMADD_SIZE_8BIT, &DGHy,1,100); HAL_I2C_Mem_Read(&i2c, 0xD0, 70, I2C_MEMADD_SIZE_8BIT, &DGLy,1,100); //G Z HAL_I2C_Mem_Read(&i2c, 0xD0, 71, I2C_MEMADD_SIZE_8BIT, &DGHz,1,100); HAL_I2C_Mem_Read(&i2c, 0xD0, 72, I2C_MEMADD_SIZE_8BIT, &DGLz,1,100); do { HAL_I2C_Mem_Read(&i2c, 0x18, 0x02, I2C_MEMADD_SIZE_8BIT, &ST1,1,100); } while (!(ST1&0x01)); //0x0C - adress AK8963, 0x03-0x08 => HLx-HHz HAL_I2C_Mem_Read(&i2c, 0x18, 0x03, I2C_MEMADD_SIZE_8BIT, &HLx,1,100); HAL_I2C_Mem_Read(&i2c, 0x18, 0x04, I2C_MEMADD_SIZE_8BIT, &HHx,1,100); HAL_I2C_Mem_Read(&i2c, 0x18, 0x05, I2C_MEMADD_SIZE_8BIT, &HLy,1,100); HAL_I2C_Mem_Read(&i2c, 0x18, 0x06, I2C_MEMADD_SIZE_8BIT, &HHy,1,100); HAL_I2C_Mem_Read(&i2c, 0x18, 0x07, I2C_MEMADD_SIZE_8BIT, &HLz,1,100); HAL_I2C_Mem_Read(&i2c, 0x18, 0x08, I2C_MEMADD_SIZE_8BIT, &HHz,1,100); HAL_I2C_Mem_Read(&i2c, 0x18, 0x09, I2C_MEMADD_SIZE_8BIT, &H,1,100); //accelerometer Ax = (int16_t)(DAHx << 8 | DALx); Ay = (int16_t)(DAHy << 8 | DALy); Az = (int16_t)(DAHz << 8 | DALz); //gyroscope Gx = (int16_t)(DGHx << 8 | DGLx); Gy = (int16_t)(DGHy << 8 | DGLy); Gz = (int16_t)(DGHz << 8 | DGLz); //magnetometer Hx= (int16_t)(HHx << 8 | HLx); Hy= (int16_t)(HHy << 8 | HLy); Hz= (int16_t)(HHz << 8 | HLz); Ax_g = (float)Ax/16384.0; Ay_g = (float)Ay/16384.0; Az_g = (float)Az/16384.0; Gx_g = (float)Gx/131.0; Gy_g = (float)Gy/131.0; Gz_g = (float)Gz/131.0; printf("Ax = %f Ay = %f Az = %f Gx = %f Gy = %f Gz = %f\n", Ax_g, Ay_g, Az_g, Gx_g, Gy_g, Gz_g); HAL_Delay(200); }
×
×
  • Utwórz nowe...