[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