[elektro] STM32F Flash memory inicializáslása.

elight elight at gmail.hu
Fri Jun 12 18:00:56 CEST 2015


Igen,  meg..

IDR  -  input

ODR - output regiszrer

és ne felejsd s Periféria Clock regiszterében az órajelet is engedélyezni
mert anélkül a periféria alszik..

És bizonyos típusoknál létezik még egy bit-bang-nak nevezett bittáblás 
elérési  mód is.

Azonkívül bekapcsolhatsz a portlábakra kiterjesztett módokat ,
UART , SPI  stb.   kezeléshez.. Van erről valahol egy kis
magyar nyelvű fejtágító is..

és ez a anyag is hasznos lehet kezdéshez ,

http://hg8lhs.ham.hu/publications/Diploma.pdf

ha még nem ismernéd..

Üdv István



2015-06-11 13:24 keltezéssel, uprogc . írta:
> Megtalaltam:
>
> void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
> {
>    /* Check the parameters */
>    assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
>
>    GPIOx->ODR = PortVal;
> }
>
> Tehat hasznalhato akar :  GPIOx->ODR = PortVal;
>
>
> Szabi
>
> 2015-06-11 14:05 GMT+03:00 uprogc . <uprogc at gmail.com>:
>
>> Sziasztok,
>>
>> Nekem is lenne egy STM32 kerdesem.
>>
>> AVRnel megszoktuk, hogy a portra siman kiirjuk az adatot, az megjelenik a
>> kimeneten.
>> STM32-nel mindehez ket regiszterre van szukseg:
>>
>> GPIOD->BSRRH = GPIO_Pin_13  Low szint;
>> GPIOD->BSRRL = GPIO_Pin_13; High szint
>>
>> Hogy tudom parhuzamos portkent a legegyszerubben hasznalni az adott portot
>> ? (LCD vezerles)
>>
>>
>> U,
>> Szabi
>>
>> 2015-06-10 16:13 GMT+03:00 elight <elight at gmail.hu>:
>>
>>> Megvigasz....
>>>
>>> de megvan a vigasz.. :-)
>>>
>>> unsigned char FLASH_Mem_Inited = 0;
>>>
>>>
>>>
>>> valahol a main elején
>>> Error = EEprom_Table_Read  ( kezdőcím, hossz  );   // olvasom a táblát
>>> egy EE_Thumb memóriaváltozóba
>>>
>>> if ( ! ( EE_Thumb[ TEST_AA ] ==  0xAA ) &&  (EE_Thumb[ TEST_55 ] ==  0x55
>>> ))
>>> {
>>>                    //  Ha a pattern nem található  az EEprom területen ...
>>>
>>>                   EEprom_Table_Init ( kezdőcím, hossz );    // Belevarrja
>>> a területbe a patternt és a kezdő adatokat.
>>>                   FLASH_Mem_Inited = 1;
>>> }
>>>
>>> És a  nyitóképernyőn   is kiírom ha initelt , hogy lássam
>>>
>>> if(  FLASH_Mem_Inited == 0 )
>>> {
>>>           Print_Status_LCD("FLASH_Read_Ok" );
>>> }
>>> else
>>> {
>>>        Print_Status_LCD("FLASH_Init  !!!" );
>>> }
>>>
>>>
>>> a többi már pöröghet   szokásosan..
>>> Az előbb teszteltem éppen, szépen lefutotta az esteket..
>>>
>>>
>>> Az zavart be,  PIC-nél ezeket az adatokat direkt beleírhattam az égető
>>> EEprom táblájába,
>>> itt pedig a FLASH-ba kell bele juttatni, és ahhoz kell a FLASH kezelő
>>> függvénye..
>>> Legalább is egyenlőre direkt nem értem el  , hogy a fordító tegye bele
>>> nekem.
>>>
>>> Üdv István
>>>
>>>
>>>
>>>
>>>
>>> 2015-06-10 14:55 keltezéssel, hg12345 írta:
>>>> Hi a tömbnek érteket lehet adni induláskor, akkor nem ZI-n
>>> tárolja.uint8_t tomb[100]={ 1,2,3,4....};az az érték RAM-ban lesz tárolva,
>>> nem a FLASH területen. ha eléírsz "const" akkor a tömböt a flash területre
>>> teszi, de ennek az írását nem engedi a fordító.const uint8_t tomb[100]={
>>> 1,2,3,4....};Ha egy ugyan ilyen pointert definiálsz a const helyet
>>> használhtsz __attributre__ megadott kezdőcimet is...)  uint8_t  *ptomb=
>>> (uint8_t*) tomb ;és utána már használhatód ptomb[xx] hivatkozással ezért
>>> már nem kiabál a fordító de írni nagy valószínűséggel nem fogod tudni :-)
>>>> elight <elight at gmail.hu> írta:
>>>>> Sziasztok.
>>>>>
>>>>> Egy EEprom emulációt készítettem a FLASH memoria területére.
>>>>>
>>>>> A fordítónak hogyan adhatom meg , hogy ez
>>>>> egy  tömb, aminek kezdeti értéke van,
>>>>> és a függvényeim induláskor ezeket módosíthatják vagy olvashatják majd.
>>>>>
>>>>> Olyasmire gondolok, hogy a PIC-nél volt az égetőben egy EE_prom
>>>>> terület, amit kézzel beírtam, és égetés után azokkal
>>>>> a beállítási paraméterekkel indult a program.
>>>>> Mert most elsőre innen szemetet vagy 00 hoz le sajnos.
>>>>>
>>>>> Üdv István
>>>>>
>>>>> -----------------------------------------
>>>>>            elektro[-flame|-etc]
>>>> -----------------------------------------
>>>>             elektro[-flame|-etc]
>>> -----------------------------------------
>>>            elektro[-flame|-etc]
>>
>>
> -----------------------------------------
>            elektro[-flame|-etc]



More information about the Elektro mailing list