STM32F051K6U7 ma USART2 ?

Miroslav Mraz mraz na seznam.cz
Neděle Březen 15 19:06:50 CET 2015


Takhle jednoduché to zase není. Původně jsem taky předpokládal, že 
použít v bitovém poli enum jako další vrstvu abstrakce není špatný 
nápad, ale bohužel není tomu tak. Problém je v tom, že překladač obvykle 
vezme enum jako jeden byte, což nevadí pokud se hrabeme normálně někde v 
RAM, ale pokud lezeme do registru je potřeba přistupovat tam s 
definovanou šířkou slova. Dá se sice nastavit aby se enum interpretoval 
jako celé slovo, ale ani to není to pravé. Způsobí to problém s 
kompatibilitou knihoven a navíc některé registry jsou 16.bitové a i to 
je třeba zohlednit. Funguje to bez problémů, pokud slepíme 16.bitový 
registr z fragmentů uint16_t, 32.bitový z uint32_t atd. To by mělo být i 
přenositelné.

Mrazík

Dne 15.3.2015 v 18:30 Jaroslav Buchta napsal(a):
> Njn, to by nebylo spatne, nakonec by stacilo misto #define pouzit enum a
> chybu by to vyhodilo taky. Bitova pole by asi mohla delat problem v
> kompatibilite ruznych prekladacu?
>


Další informace o konferenci Hw-list