Merge branch 'master' into Keil
This commit is contained in:
commit
592ee0f312
@ -13,11 +13,6 @@
|
||||
#include "stm32f7xx_hal_gpio.h"
|
||||
#include <string.h>
|
||||
|
||||
#if !GFX_USE_OS_CHIBIOS
|
||||
#define AFRL AFR[0]
|
||||
#define AFRH AFR[1]
|
||||
#endif
|
||||
|
||||
static const ltdcConfig driverCfg = {
|
||||
480, 272, // Width, Height (pixels)
|
||||
41, 10, // Horizontal, Vertical sync (pixels)
|
||||
@ -61,181 +56,181 @@ static void configureLcdPins(void)
|
||||
GPIOI->MODER |= GPIO_MODER_MODER15_1;
|
||||
GPIOI->OTYPER &=~ GPIO_OTYPER_OT_15;
|
||||
GPIOI->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR15_0 | GPIO_OSPEEDER_OSPEEDR15_1;
|
||||
GPIOI->AFRH |= (0b1110 << 4*7);
|
||||
GPIOI->AFR[1] |= ((uint32_t)0xE << 4*7);
|
||||
|
||||
// PJ0: LCD_R1
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER0_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_0;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR0_0 | GPIO_OSPEEDER_OSPEEDR0_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*0);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*0);
|
||||
|
||||
// PJ1: LCD_R2
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER1_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_1;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR1_0 | GPIO_OSPEEDER_OSPEEDR1_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*1);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*1);
|
||||
|
||||
// PJ2: LCD_R3
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER2_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_2;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR2_0 | GPIO_OSPEEDER_OSPEEDR2_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*2);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*2);
|
||||
|
||||
// PJ3: LCD_R4
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER3_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_3;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR3_0 | GPIO_OSPEEDER_OSPEEDR3_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*3);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*3);
|
||||
|
||||
// PJ4: LCD_R5
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER4_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_4;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4_0 | GPIO_OSPEEDER_OSPEEDR4_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*4);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*4);
|
||||
|
||||
// PJ5: LCD_R6
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER5_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_5;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR5_0 | GPIO_OSPEEDER_OSPEEDR5_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*5);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*5);
|
||||
|
||||
// PJ6: LCD_R7
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER6_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_6;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6_0 | GPIO_OSPEEDER_OSPEEDR6_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*6);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*6);
|
||||
|
||||
// PJ7: LCD_G0
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER7_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_7;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7_0 | GPIO_OSPEEDER_OSPEEDR7_1;
|
||||
GPIOJ->AFRL |= (0b1110 << 4*7);
|
||||
GPIOJ->AFR[0] |= ((uint32_t)0xE << 4*7);
|
||||
|
||||
// PJ8: LCD_G1
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER8_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_8;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR8_0 | GPIO_OSPEEDER_OSPEEDR8_1;
|
||||
GPIOJ->AFRH |= (0b1110 << 4*0);
|
||||
GPIOJ->AFR[1] |= ((uint32_t)0xE << 4*0);
|
||||
|
||||
// PJ9: LCD_G2
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER9_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_9;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR9_0 | GPIO_OSPEEDER_OSPEEDR9_1;
|
||||
GPIOJ->AFRH |= (0b1110 << 4*1);
|
||||
GPIOJ->AFR[1] |= ((uint32_t)0xE << 4*1);
|
||||
|
||||
// PJ10: LCD_G3
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER10_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_10;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR10_0 | GPIO_OSPEEDER_OSPEEDR10_1;
|
||||
GPIOJ->AFRH |= (0b1110 << 4*2);
|
||||
GPIOJ->AFR[1] |= ((uint32_t)0xE << 4*2);
|
||||
|
||||
// PJ11: LCD_G4
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER11_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_11;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR11_0 | GPIO_OSPEEDER_OSPEEDR11_1;
|
||||
GPIOJ->AFRH |= (0b1110 << 4*3);
|
||||
GPIOJ->AFR[1] |= ((uint32_t)0xE << 4*3);
|
||||
|
||||
// PK0: LCD_G5
|
||||
GPIOK->MODER |= GPIO_MODER_MODER0_0;
|
||||
GPIOK->OTYPER &=~ GPIO_OTYPER_OT_0;
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR0_0 | GPIO_OSPEEDER_OSPEEDR0_1;
|
||||
GPIOK->AFRL |= (0b1110 << 4*0);
|
||||
GPIOK->AFR[0] |= ((uint32_t)0xE << 4*0);
|
||||
|
||||
// PK1: LCD_G6
|
||||
GPIOK->MODER |= GPIO_MODER_MODER1_1;
|
||||
GPIOK->OTYPER &=~ GPIO_OTYPER_OT_1;
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR1_0 | GPIO_OSPEEDER_OSPEEDR1_1;
|
||||
GPIOK->AFRL |= (0b1110 << 4*1);
|
||||
GPIOK->AFR[0] |= ((uint32_t)0xE << 4*1);
|
||||
|
||||
// PK2: LCD_G7
|
||||
GPIOK->MODER |= GPIO_MODER_MODER2_1;
|
||||
GPIOK->OTYPER &=~ GPIO_OTYPER_OT_2;
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR2_0 | GPIO_OSPEEDER_OSPEEDR2_1;
|
||||
GPIOK->AFRL |= (0b1110 << 4*2);
|
||||
GPIOK->AFR[0] |= ((uint32_t)0xE << 4*2);
|
||||
|
||||
// PE4: LCD_B0
|
||||
GPIOE->MODER |= GPIO_MODER_MODER4_1;
|
||||
GPIOE->OTYPER &=~ GPIO_OTYPER_OT_4;
|
||||
GPIOE->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4_0 | GPIO_OSPEEDER_OSPEEDR4_1;
|
||||
GPIOE->AFRL |= (0b1110 << 4*4);
|
||||
GPIOE->AFR[0] |= ((uint32_t)0xE << 4*4);
|
||||
|
||||
// PJ13: LCD_B1
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER13_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_13;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR13_0 | GPIO_OSPEEDER_OSPEEDR13_1;
|
||||
GPIOJ->AFRH |= (0b1110 << 4*5);
|
||||
GPIOJ->AFR[1] |= ((uint32_t)0xE << 4*5);
|
||||
|
||||
// PJ14: LCD_B2
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER14_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_14;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR14_0 | GPIO_OSPEEDER_OSPEEDR14_1;
|
||||
GPIOJ->AFRH |= (0b1110 << 4*6);
|
||||
GPIOJ->AFR[1] |= ((uint32_t)0xE << 4*6);
|
||||
|
||||
// PJ15: LCD_B3
|
||||
GPIOJ->MODER |= GPIO_MODER_MODER15_1;
|
||||
GPIOJ->OTYPER &=~ GPIO_OTYPER_OT_15;
|
||||
GPIOJ->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR15_0 | GPIO_OSPEEDER_OSPEEDR15_1;
|
||||
GPIOJ->AFRH |= (0b1110 << 4*7);
|
||||
GPIOJ->AFR[1] |= ((uint32_t)0xE << 4*7);
|
||||
|
||||
// PG12: LCD_B4
|
||||
GPIOG->MODER |= GPIO_MODER_MODER12_1;
|
||||
GPIOG->OTYPER &=~ GPIO_OTYPER_OT_12;
|
||||
GPIOG->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR12_0 | GPIO_OSPEEDER_OSPEEDR12_1;
|
||||
GPIOG->AFRH |= (0b1110 << 4*4);
|
||||
GPIOG->AFR[1] |= ((uint32_t)0xE << 4*4);
|
||||
|
||||
// PK4: LCD_B5
|
||||
GPIOK->MODER |= GPIO_MODER_MODER4_1;
|
||||
GPIOK->OTYPER &=~ GPIO_OTYPER_OT_4;
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4_0 | GPIO_OSPEEDER_OSPEEDR4_1;
|
||||
GPIOK->AFRL |= (0b1110 << 4*4);
|
||||
GPIOK->AFR[0] |= ((uint32_t)0xE << 4*4);
|
||||
|
||||
// PK5: LCD_B6
|
||||
GPIOK->MODER |= GPIO_MODER_MODER5_1;
|
||||
GPIOK->OTYPER &=~ GPIO_OTYPER_OT_5;
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR5_0 | GPIO_OSPEEDER_OSPEEDR5_1;
|
||||
GPIOK->AFRL |= (0b1110 << 4*5);
|
||||
GPIOK->AFR[0] |= ((uint32_t)0xE << 4*5);
|
||||
|
||||
// PK6: LCD_B7
|
||||
GPIOK->MODER |= GPIO_MODER_MODER6_1;
|
||||
GPIOK->OTYPER &=~ GPIO_OTYPER_OT_6;
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR6_0 | GPIO_OSPEEDER_OSPEEDR6_1;
|
||||
GPIOK->AFRL |= (0b1110 << 4*6);
|
||||
GPIOK->AFR[0] |= ((uint32_t)0xE << 4*6);
|
||||
|
||||
// PK7: LCD_DE
|
||||
GPIOK->MODER |= GPIO_MODER_MODER7_1;
|
||||
GPIOK->OTYPER &=~ GPIO_OTYPER_OT_7;
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR7_0 | GPIO_OSPEEDER_OSPEEDR7_1;
|
||||
GPIOK->AFRL |= (0b1110 << 4*7);
|
||||
GPIOK->AFR[0] |= ((uint32_t)0xE << 4*7);
|
||||
|
||||
// PI9: LCD_VSYNC
|
||||
GPIOI->MODER |= GPIO_MODER_MODER9_1;
|
||||
GPIOI->OTYPER &=~ GPIO_OTYPER_OT_9;
|
||||
GPIOI->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR9_0 | GPIO_OSPEEDER_OSPEEDR9_1;
|
||||
GPIOI->AFRH |= (0b1110 << 4*1);
|
||||
GPIOI->AFR[1] |= ((uint32_t)0xE << 4*1);
|
||||
|
||||
// PI10: LCD_VSYNC
|
||||
GPIOI->MODER |= GPIO_MODER_MODER10_1;
|
||||
GPIOI->OTYPER &=~ GPIO_OTYPER_OT_10;
|
||||
GPIOI->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR10_0 | GPIO_OSPEEDER_OSPEEDR10_1;
|
||||
GPIOI->AFRH |= (0b1110 << 4*2);
|
||||
GPIOI->AFR[1] |= ((uint32_t)0xE << 4*2);
|
||||
|
||||
// PI13: LCD_INT
|
||||
GPIOI->MODER |= GPIO_MODER_MODER13_1;
|
||||
GPIOI->OTYPER &=~ GPIO_OTYPER_OT_13;
|
||||
GPIOI->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR13_0 | GPIO_OSPEEDER_OSPEEDR13_1;
|
||||
GPIOI->AFRH |= (0b1110 << 4*5);
|
||||
GPIOI->AFR[1] |= ((uint32_t)0xE << 4*5);
|
||||
|
||||
// PI14: LCD_CLK
|
||||
GPIOI->MODER |= GPIO_MODER_MODER14_1;
|
||||
GPIOI->OTYPER &=~ GPIO_OTYPER_OT_14;
|
||||
GPIOI->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR14_0 | GPIO_OSPEEDER_OSPEEDR14_1;
|
||||
GPIOI->AFRH |= (0b1110 << 4*6);
|
||||
GPIOI->AFR[1] |= ((uint32_t)0xE << 4*6);
|
||||
|
||||
// PI8: ???
|
||||
GPIOI->MODER |= GPIO_MODER_MODER8_1;
|
||||
GPIOI->OTYPER &=~ GPIO_OTYPER_OT_8;
|
||||
GPIOI->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR8_0 | GPIO_OSPEEDER_OSPEEDR8_1;
|
||||
GPIOI->AFRH |= (0b1110 << 4*0);
|
||||
GPIOI->AFR[1] |= ((uint32_t)0xE << 4*0);
|
||||
|
||||
// PI12: LCD_DISP_PIN
|
||||
GPIOI->MODER |= GPIO_MODER_MODER12_0;
|
||||
@ -248,7 +243,7 @@ static void configureLcdPins(void)
|
||||
GPIOK->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR3_0 | GPIO_OSPEEDER_OSPEEDR3_1;
|
||||
}
|
||||
|
||||
static inline void init_board(GDisplay *g) {
|
||||
static void init_board(GDisplay *g) {
|
||||
|
||||
// As we are not using multiple displays we set g->board to NULL as we don't use it
|
||||
g->board = 0;
|
||||
@ -295,11 +290,11 @@ static inline void init_board(GDisplay *g) {
|
||||
}
|
||||
}
|
||||
|
||||
static inline void post_init_board(GDisplay* g) {
|
||||
static void post_init_board(GDisplay* g) {
|
||||
(void) g;
|
||||
}
|
||||
|
||||
static inline void set_backlight(GDisplay* g, uint8_t percent) {
|
||||
static void set_backlight(GDisplay* g, uint8_t percent) {
|
||||
(void) g;
|
||||
|
||||
// ST was stupid enought not to hook this up to a pin that
|
||||
|
@ -40,14 +40,14 @@ static bool_t init_board(GMouse* m, unsigned instance)
|
||||
GPIOH->MODER |= GPIO_MODER_MODER7_1; // Alternate function
|
||||
GPIOH->OTYPER |= GPIO_OTYPER_OT_7; // OpenDrain
|
||||
GPIOH->OSPEEDR &= ~GPIO_OSPEEDER_OSPEEDR7; // LowSpeed
|
||||
GPIOH->AFRL |= (0b0100 << 4*7); // AF4
|
||||
GPIOH->AFRL |= (uint32_t)(0x04 << 4*7); // AF4
|
||||
|
||||
// I2C3_SDA GPIOH8, alternate, opendrain, highspeed
|
||||
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOHEN; // Enable clock
|
||||
GPIOH->MODER |= GPIO_MODER_MODER8_1; // Alternate function
|
||||
GPIOH->OTYPER |= GPIO_OTYPER_OT_8; // OpenDrain
|
||||
GPIOH->OSPEEDR &= ~GPIO_OSPEEDER_OSPEEDR8; // LowSpeed
|
||||
GPIOH->AFRH |= (0b0100 << 4*0); // AF4
|
||||
GPIOH->AFRH |= (uint32_t)(0x04 << 4*0); // AF4
|
||||
|
||||
// Initialize the I2C3 peripheral
|
||||
if (!(i2cInit(I2C3))) {
|
||||
|
12
gfx.h
12
gfx.h
@ -51,6 +51,18 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
* __inline was standardized with C99. previous to that each compiler handles it differently.
|
||||
*/
|
||||
#undef INLINE
|
||||
#ifdef(__KEIL__)
|
||||
#define INLINE __inline
|
||||
#elif(__C51__)
|
||||
#define INLINE __inline
|
||||
#else
|
||||
#define INLINE inline
|
||||
#endif
|
||||
|
||||
/* gfxconf.h is the user's project configuration for the GFX system. */
|
||||
#include "gfxconf.h"
|
||||
|
||||
|
@ -12,18 +12,6 @@
|
||||
/* Include the low level driver information */
|
||||
#include "gdisp_driver.h"
|
||||
|
||||
#if 1
|
||||
#undef INLINE
|
||||
#if defined(__KEIL__) || defined(__C51__)
|
||||
#define INLINE __inline
|
||||
#else
|
||||
#define INLINE inline
|
||||
#endif
|
||||
#else
|
||||
#undef INLINE
|
||||
#define INLINE
|
||||
#endif
|
||||
|
||||
// Number of milliseconds for the startup logo - 0 means disabled.
|
||||
#if GDISP_NEED_STARTUP_LOGO
|
||||
#define GDISP_STARTUP_LOGO_TIMEOUT 1000
|
||||
|
@ -28,7 +28,7 @@
|
||||
* @details Defaults to FALSE
|
||||
*/
|
||||
#ifndef GWIN_NEED_WINDOWMANAGER
|
||||
#define GWIN_NEED_WIDGET FALSE
|
||||
#define GWIN_NEED_WINDOWMANAGER FALSE
|
||||
#endif
|
||||
/**
|
||||
* @brief Should the widget hierarchy be included. This provides parent-child features.
|
||||
|
Loading…
Reference in New Issue
Block a user