Last active
March 2, 2022 21:20
-
-
Save robertlugg/a7c062210ab68214fd0c4f5c8bced0db to your computer and use it in GitHub Desktop.
STM32 LCD interfacing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
NOTE: This code had a bug which I edited in the browser to fix. UNTESTED. | |
Code to set up 8 pins for output to an LCD display. | |
This code sets up the 8 pins and turns on Port C, 6 | |
#NEWBIEHACK | |
RL 03-01-2022 | |
*/ | |
// Set up GPIO Port B | |
RCC->AHBENR |= RCC_AHBENR_GPIOBEN; | |
// Set mode for GPIOB pins | |
GPIOB->MODER = 0; | |
GPIOB->MODER |= | |
0b01 << GPIO_MODER_MODER12_Pos | |
| 0b01 << GPIO_MODER_MODER13_Pos | |
| 0b01 << GPIO_MODER_MODER14_Pos | |
| 0b01 << GPIO_MODER_MODER15_Pos; | |
GPIOB->OTYPER = 0; | |
GPIOB->OSPEEDR = 0; | |
GPIOB->OSPEEDR |= | |
0b11 << GPIO_OSPEEDR_OSPEEDR12_Pos | |
| 0b11 << GPIO_OSPEEDR_OSPEEDR13_Pos | |
| 0b11 << GPIO_OSPEEDR_OSPEEDR14_Pos | |
| 0b11 << GPIO_OSPEEDR_OSPEEDR15_Pos; | |
GPIOB->PUPDR = 0 ; | |
// Set u GPIO Port C | |
RCC->AHBENR |= RCC_AHBENR_GPIOCEN; | |
// Set mode for GPIO-C pins | |
GPIOC->MODER = 0; | |
GPIOC->MODER |= | |
0b01 << GPIO_MODER_MODER6_Pos | |
| 0b01 << GPIO_MODER_MODER7_Pos | |
| 0b01 << GPIO_MODER_MODER8_Pos | |
| 0b01 << GPIO_MODER_MODER9_Pos; | |
GPIOC->OTYPER = 0; | |
GPIOC->OSPEEDR = 0; | |
GPIOC->OSPEEDR |= | |
0b11 << GPIO_OSPEEDR_OSPEEDR6_Pos | |
| 0b11 << GPIO_OSPEEDR_OSPEEDR7_Pos | |
| 0b11 << GPIO_OSPEEDR_OSPEEDR8_Pos | |
| 0b11 << GPIO_OSPEEDR_OSPEEDR9_Pos; | |
GPIOC->PUPDR = 0 ; | |
// Turn on Port C, Pin 6 | |
GPIOC->BSRR |= GPIO_BSRR_BS_6; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment