www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Keil in STM32
Pojdi na stran Prejšnja  1, 2, 3, 4, 5, 6, 7, 8
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
simeon
Član
Član



Pridružen-a: Pon 21 Maj 2007 21:55
Prispevkov: 118
Aktiv.: 0.58
Kraj: Šentjernej

PrispevekObjavljeno: Ned Dec 21, 2014 5:51 pm    Naslov sporočila:   Odgovori s citatom

Shocked To je bilo pa hitro.
Hvala tilz0R je odpravilo napako. Applause

Ko berem tvojo stran, ki mi je v pomoč sem zasledil, da raje uporabljaš standardno knjižnico. Je še vedno tako ali si presedlal na HAL driverje?
Sam sem kar zbegan glede tega kaj uporabljat. Še posebej pa, ker se pogled STMa učim še C jezik. S tem pa me heca interpretacija funkcij (knjižnice) in pravilna uporaba le-teh.

_________________
Sej bo bolš!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Ned Dec 21, 2014 5:55 pm    Naslov sporočila:   Odgovori s citatom

Ja, drži, raje standardno knjižnico, in bom tam tudi ostal, če le ne bo nujna potreba po HAL driverjih. Namreč "smrdi" mi Cube zaenkrat še.
Nepregledna koda, slaba berljivost, verjetno še zelo bugasta zadeva.

Raje imam STD driverji, ki so samo nekakšen višji nivo, da ni treba pisat registrov, ampak to funkcije delajo zate. Še vedno pa moraš sam točno vedet kaj bi rad (vklopi USART, vklopi uro, preglej če je bit aktiven, etc etc)

HAL driverji so pa še višje, pa sploh ne veš več kaj se dogaja spodaj.

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9406
Aktiv.: 42.36
Kraj: Kranj - struževo

PrispevekObjavljeno: Pon Dec 22, 2014 2:44 pm    Naslov sporočila:   Odgovori s citatom

Za CubeMX imamo že ločeno temo. http://www.elektronik.si/phpBB2/viewtopic.php?t=38922
Jaz sem en sorazmerno enostaven projekt (usb, enkoder, par timerjev in interruptov) v parih dneh času gor postavil iz nič v CubeMX. Z zadnjo posodobitvijo zadeva že kar dobro špila.
Pri STD-Lib sem za nov projekt vedno vzel enega starega in ga predelal, s tem pa vlekel s sabo vse (neposodobljene) knjižnice in buge v kodi Smile Ampak tole pisanje je za v drugo temo..

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
damo
Član
Član



Pridružen-a: Čet 31 Jul 2003 13:45
Prispevkov: 2008
Aktiv.: 9.04
Kraj: Krško

PrispevekObjavljeno: Čet Dec 25, 2014 2:02 pm    Naslov sporočila:   Odgovori s citatom

Bom dal kar v to temo, sicer pa je bolj vprašanje iz Cja:

v projektu sem si definiral IO pine po svojih imenih, da mi je zadeva bolj pregledna.

definiral sem jih kot (primer za output in input):

#define LED1 GPIOE,GPIO_Pin_13 //PE13
#define KEY1 GPIOA,GPIO_Pin_8 // PA8

kličem jih na ta način:

GPIO_ReadInputDataBit(KEY1)

in pa GPIO_SetBits(LED1) oz. GPIO_ResetBits(LED1)

Do tu mi vse deluje ok. Compiler pač zamenja string "LED1" s stringom "GPIOE,GPIO_Pin_13" in tako naprej za vse ostale.


Rad opravil začetno inicializacijo v stilu Pin_Output_Init(LED1) oz. Pin_Input_Init(KEY1), zato sem napisal funkcijo (bom dal samo za output, da ne dolgovezim):


Koda:
void DL_Pin_Init_Output(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
  GPIO_InitTypeDef GPIO_InitDef;
 
  GPIO_InitDef.GPIO_Pin = GPIO_Pin;
  GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitDef.GPIO_OType = GPIO_OType_PP;
  GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitDef.GPIO_Speed = GPIO_Speed_100MHz;
  //Initialize pins
  GPIO_Init(GPIOx, &GPIO_InitDef);

 // enable GPIO port clock
  if (GPIOx == GPIOA) RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  if (GPIOx == GPIOB) RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOB, ENABLE);
  if (GPIOx == GPIOC) RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOC, ENABLE);
  if (GPIOx == GPIOD) RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOD, ENABLE);
  if (GPIOx == GPIOE) RCC_AHB1PeriphResetCmd(RCC_AHB1Periph_GPIOE, ENABLE);   
}


Ta zadeva pa mi ne dela....

_________________
Dobrga štromarja samo slab šnops strese!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Čet Dec 25, 2014 2:07 pm    Naslov sporočila:   Odgovori s citatom

Najprej ura, potem ostalo.
Brez ure so registri mrtvi za GPIO.

Klical si "Reset" funkcije, moraš pa "Clock" funkcije.
Klicanje je potrebno pred inicializacijo.

Koda:

void DL_Pin_Init_Output(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
  GPIO_InitTypeDef GPIO_InitDef;

 // enable GPIO port clock
  if (GPIOx == GPIOA) RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
  if (GPIOx == GPIOB) RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);
  if (GPIOx == GPIOC) RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
  if (GPIOx == GPIOD) RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
  if (GPIOx == GPIOE) RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);   


 
  GPIO_InitDef.GPIO_Pin = GPIO_Pin;
  GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT;
  GPIO_InitDef.GPIO_OType = GPIO_OType_PP;
  GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_InitDef.GPIO_Speed = GPIO_Speed_100MHz;
  //Initialize pins
  GPIO_Init(GPIOx, &GPIO_InitDef);     
}

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net


Nazadnje urejal/a tilz0R Čet Dec 25, 2014 2:42 pm; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
damo
Član
Član



Pridružen-a: Čet 31 Jul 2003 13:45
Prispevkov: 2008
Aktiv.: 9.04
Kraj: Krško

PrispevekObjavljeno: Čet Dec 25, 2014 2:22 pm    Naslov sporočila:   Odgovori s citatom

tilz0R je napisal/a:
Najprej ura, potem ostalo.


ahaaa Smile


A lahko compiler tudi "sestavi" argumente, da bi lahko npr. klical takole:

original:

GPIO_PinAFConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_PinSource, uint8_t GPIO_AF)


moja želja:

GPIO_PinAFConfig(Q1_A,GPIO_AF_TIM2);


(pri tem je Q1_A definiran na isti način kot pini v prejšnjem postu)



Hvala za ekspresno hitro pomoč!

_________________
Dobrga štromarja samo slab šnops strese!
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
tilz0R
Član
Član



Pridružen-a: Čet 31 Maj 2012 15:39
Prispevkov: 898
Aktiv.: 6.24
Kraj: Črnomelj

PrispevekObjavljeno: Čet Dec 25, 2014 2:41 pm    Naslov sporočila:   Odgovori s citatom

Moralo bi it tako kot je tvoja želja, compiler bo zamenjal prva dva parametra z "A,B" in boš na koncu dobil

func(A,B, C);

_________________
Knowledge sharing is caring.
majerle.eu | stm32f4-discovery.net
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Sigi
Član
Član



Pridružen-a: Čet 31 Jul 2014 11:42
Prispevkov: 199
Aktiv.: 1.69
Kraj: Kamnik

PrispevekObjavljeno: Čet Dec 25, 2014 3:31 pm    Naslov sporočila:   Odgovori s citatom

Če se dobro spomnim, se mi je en compiler usajal, če sem na koncu #define bla,bla definicije v isti vrstici imel še // komentar, saj ga je skupaj z definirano vrednostjo vstavil npr. v klic funkcije, in je zato javil syntax err. Tako sem se navadil komentirati vrstico nad #define makrojem .
Samo toliko, če komu izkušnja pride prav.

lp
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2, 3, 4, 5, 6, 7, 8
Stran 8 od 8

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group