This week I focused on interfacing with the LCD. On Wednesday I went to the lab to meet Adam and Xingran and learned how to program Rev1 using the STM32 Discovery Board. Following that, I debugged the flashing process locally at my house. Attempting different USB cables, ports on my computers, wires, and allowing for a lot of hard and soft resets on all devices, I eventually got it to flash (at least once in a while)!
From there I wrote up some code to turn the LCD’s display on and display characters. Again, this was based on this Arduino code from the manufacturer. I had no luck with getting the LCD running, even after some debugging.
On Saturday I went to the lab with Adam and we found out a couple important discoveries
- The parallel/serial pin was hard-wired to VDD, which is parallel. However, we needed it to be connected to ground so that we can interface it via SPI. Adam fixed this
- My initialization code was running before any peripherals or SPI was set up, so I moved it to later in the execution.
We were amazed to see that the LCD displayed pixels after making these changes!
Next week I will wrap up the LCD UI, adding a menu structure.