[elektro] ARM STM32F100 GPIO 8bites kétirányú használata.

hg12345 hg12345 at freemail.hu
Fri Jul 31 08:21:35 CEST 2015


Kérdés lehet e byte-onként címezni a periférai illesztő mezőt, (erre nem emlékszem), de nem nehéz kipróbálni.(szerintem müködhet, mert a DMA  byte-s elérésre is programozható....#define LCD_DATA_OUT     ((uint8_t*) &GPI_ODR)[1] ha működik, akkor is ez egy nem hordozható megoldás :-(hasonlóan az in is működhet Általában a stm32f10x.h végén vannak makrók, pl.: #define MODIFY_REG(REG, CLEARMASK, SETMASK)  WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) Amúgy ha nem akarsz maszkolást akkor még használhatod a SET/ RSET peridéria regiszterek... Milyen LCD-t használsz, hogy vissza kell olvasni a tartalmat?  
elight <elight at gmail.hu> írta:
>Sziasztok.
>
>Hogyan szokták ezt egyszerűen.
>
>Bitenként nézve sokat kellene billegetni.
>
>Van ilyen mód?
>Vagy   folyamatosan maszkolni és irányt váltogatni szükséges?
>
>Az a gondom, ha pl.  def-elem a felső 8 bitre
>
>#define  LCD_DATA_OUT     Hi(GPIO_ODR)
>#define  LCD_DATA_IN         Hi(GPIO_IDR)
>
>
>a kimenet használatakor az alsó bitek is változnak időnként..
>
>LCD_DATA_OUT = 0xBE;
>
>tehát arra jutnék ,  word változóba kell tenni és maszkolni kellene talán.
>
>De még keresgélem , hogy egyáltalán jó irányban tapogattam a hibát?
>De ez a gyanus.  Maga az LCD működik, de más out  bit is billen alsó 
>byte-ban,
>aminek nem lenne szabad
>Üdv István
>
>-----------------------------------------
>          elektro[-flame|-etc]


More information about the Elektro mailing list