Hi, ich möchte gern mein neues LCD Display (mit einem integrierten ST7529) mit einem STM32 Prozessor ansteuern, welcher allerdings keinen Daten/Adressbus besitzt. Daher muss ich normale GPIOs verwenden. Ist meine Schreibroutine (Displaydaten und Initialisierungsdaten) so richtig?
1 | void write_lcd(unsigned char addr, unsigned char data) |
2 | {
|
3 | // addr (Displaydaten = 1 oder InitDaten = 0) setzen
|
4 | GPIOC->ODR = ((GPIOC->ODR & 0x10) | (addr << 4)); |
5 | |
6 | // daten setzen
|
7 | GPIOB->ODR = ((GPIOB->ODR & 0xFFFF) | data); |
8 | |
9 | // cs auf low setzen
|
10 | GPIOC->BRR = (1 << 8); |
11 | |
12 | // r/w auf low setzen
|
13 | GPIOC->BRR = (1 << 5); |
14 | |
15 | delay(100); |
16 | |
17 | /* beide wieder auf high ziehen */
|
18 | GPIOC->BSRR = (1 << 8); |
19 | GPIOC->BSRR = (1 << 5); |
20 | |
21 | }
|
Gruß Marco