#include #define STM32F1 #include #ifndef ili9341 #define ili9341 #define PALET_16BIT #define SCREEN_HEIGHT 240 #define SCREEN_WIDTH 320 #define SPI_ADDR SPI1 #define ILI9341_DC GPIO2 #define ILI9341_RES GPIO3 #define ILI9341_CS GPIO1 #define ILI9341_CLK GPIO5 #define ILI9341_MISO GPIO6 #define ILI9341_MOSI GPIO7 // Init comands #define ILI9341_SOFTRESET 0x01 #define ILI9341_POWERCONTROL_A 0xCB #define ILI9341_POWERCONTROL_B 0xCF #define ILI9341_DRIVER_TIMINGS_A 0xE8 #define ILI9341_DRIVER_TIMINGS_B 0xEA #define ILI9341_POS_CONTROL 0xEA #define ILI9341_PUMP_RATIO_CONTROL 0xF7 #define ILI9341_POWERCONTROL1 0xC0 #define ILI9341_POWERCONTROL2 0xC1 #define ILI9341_VCOM_CONTROL1 0xC5 #define ILI9341_VCOM_CONTROL2 0xC7 #define ILI9341_MEM_ACCESS_CONTROL 0x36 #define ILI9341_PIXEL_FORMAT_CONTROL 0x3A #define ILI9341_FRAME_RATIO_CONTROL 0xB1 #define ILI9341_DISPLAY_RATIO_CONTROL 0xB6 #define ILI9341_3G_SETUP 0xF2 #define ILI9341_GAMMA_CURVE_SELECTED 0x26 #define ILI9341_SET_POS_GAMMA 0x0F #define ILI9341_SET_NEG_GAMMA 0xE1 #define ILI9341_DISPLAYOFF 0x28 #define ILI9341_PIXELFORMAT 0x3A #define ILI9341_MEMCONTROL 0x36 #define ILI9341_SLEEPOUT 0x11 #define ILI9341_DISPLAYON 0x29 #define ILI9341_SET_COLUMN 0x2A #define ILI9341_SET_ROW 0x2B #define ILI9341_WRITE_TO_RAM 0x2C #define ILI9341_PIXEL_FORMAT_16BIT 0x55 // Sets up GPIO for peripherals void ILI_SetupGPIO(void); // Starts up an initialization sequence void ILI_Setup(void); // Hard resets the screen void ILI_hard_reset(void); // Sends a comand to display void ILI_sendComand(uint8_t cmd); // Writes a bit to SPI void ILI_sendData(uint8_t data); // Set position to write to void ILI_setAddrWindow(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); #endif // ili9341 // Performs a goven amount of NOPs void delayCycles(uint32_t nops);