[elektro] STM32F Flash memory inicializáslása.
uprogc .
uprogc at gmail.com
Thu Jun 11 13:24:11 CEST 2015
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]
>
>
>
More information about the Elektro
mailing list