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

uprogc . uprogc at gmail.com
Fri Jun 12 18:14:34 CEST 2015


Valaki nem tudja, hogy IIR szurot hogy tudok implementalni STM32-re ?
Egy pelda kellene arra, hogy ha Matlabban kigeneralom a szurot utanna hogy
lehet implementalni.
Tavaly probalkoztam, es emlekszem hogy a DSP lib-ben levo fuggvenyek es a
Matlab altal generalt szuro sehogy sem volt osszeegyeztetheto. Valamit
general pluszba a Matlab (nem vagyok IIRben abszolute jartas)
FIRnel simman ment minden.

Szabi

2015-06-12 19:09 GMT+03:00 uprogc . <uprogc at gmail.com>:

> Szia,
>
> Koszi, a tobbi nem elekadas, felepitettem egy teljes SDR radiot mar erre a
> procira, csak akkor nem volt szukseg 8 bitet egyszerre kiirni a portra es a BSRRx
> regiszter irasokat hasznalta., Most bejott egy grafikus kijelzo,, es azt
> hittem mas port iras lehetoseg nincs.
>
>
> Szabi
>
> 2015-06-12 19:00 GMT+03:00 elight <elight at gmail.hu>:
>
>> 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]
>>
>> -----------------------------------------
>>           elektro[-flame|-etc]
>>
>
>


More information about the Elektro mailing list