[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