Fixing orientation

This commit is contained in:
Clément Grennerat 2025-09-14 12:48:57 +02:00
parent 58bd75f00f
commit aad3bc2280
4 changed files with 56 additions and 55 deletions

View File

@ -28,8 +28,8 @@
#define SPI1_BASEDR_ADR SPI1_BASE //adresse du reg SPI3 DR pour acces 8 bits (defs std permet accès 16bits seulement) #define SPI1_BASEDR_ADR SPI1_BASE //adresse du reg SPI3 DR pour acces 8 bits (defs std permet accès 16bits seulement)
#define LCD_SCREEN_HEIGHT 470 // ST7365 is 480 (aligned at the origin) #define LCD_SCREEN_HEIGHT 282 // ST7365 is 320 (centered, offset = 19)
#define LCD_SCREEN_WIDTH 282 // ST7365 is 320 (centered, offset = 19) #define LCD_SCREEN_WIDTH 470 // ST7365 is 480 (aligned at the left, offset = 10)
//CHIP SELECT PIN AND PORT, STANDARD GPIO //CHIP SELECT PIN AND PORT, STANDARD GPIO
#define LCD_CS_PIN (1<<8) #define LCD_CS_PIN (1<<8)

View File

@ -94,12 +94,12 @@ void LCD_Write_Data16(uint16_t data) {
/* Set the frame to draw into and sends a write into frame command */ /* Set the frame to draw into and sends a write into frame command */
void LCD_Set_Address(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2) { void LCD_Set_Address(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2) {
LCD_Write_Command(0x2A); LCD_Write_Command(0x2A);
LCD_Write_Data16(X1); LCD_Write_Data16(X1 + 10);
LCD_Write_Data16(X2); LCD_Write_Data16(X2 + 10);
LCD_Write_Command(0x2B); LCD_Write_Command(0x2B);
LCD_Write_Data16(Y1); LCD_Write_Data16(Y1 + 19);
LCD_Write_Data16(Y2); LCD_Write_Data16(Y2 + 19);
LCD_Write_Command(0x2C); LCD_Write_Command(0x2C);
} }
@ -164,8 +164,10 @@ void LCD_Init(void) {
// Enable color inversion (INVON) // Enable color inversion (INVON)
LCD_Write_Command(0x21); LCD_Write_Command(0x21);
// Disable partial mode // Configure orientation stuff
LCD_Write_Command(0x13); LCD_Write_Command(0x36);
LCD_Write_Data(0b10110100);
// Exit sleep // Exit sleep
LCD_Write_Command(0x11); LCD_Write_Command(0x11);
@ -177,18 +179,16 @@ void LCD_Init(void) {
// Fill white // Fill white
LCD_Fill_Screen(WHITE); LCD_Fill_Screen(WHITE);
// End the end with black
// LCD_Draw_Rectangle(0, LCD_SCREEN_WIDTH, LCD_SCREEN_WIDTH,
// LCD_SCREEN_HEIGHT - LCD_SCREEN_WIDTH, BLACK);
// Draw colors columns // Draw colors columns
LCD_Set_Address(20, 20, LCD_SCREEN_WIDTH - 60, LCD_SCREEN_WIDTH - 60); LCD_Set_Address(30, 30, LCD_SCREEN_WIDTH - 30, LCD_SCREEN_HEIGHT - 30);
uint32_t size = (LCD_SCREEN_WIDTH - 40) * 20; uint32_t size = (LCD_SCREEN_WIDTH - 59) * 20;
LCD_Draw_Colour_Burst(BLACK, size); LCD_Draw_Colour_Burst(BLACK, size);
LCD_Draw_Colour_Burst(WHITE, size); LCD_Draw_Colour_Burst(WHITE, size);
LCD_Draw_Colour_Burst(BLUE, size); LCD_Draw_Colour_Burst(BLUE, size);
LCD_Draw_Colour_Burst(GREEN, size); LCD_Draw_Colour_Burst(GREEN, size);
LCD_Draw_Colour_Burst(RED, size); LCD_Draw_Colour_Burst(RED, size);
LCD_Draw_Colour_Burst(BLACK, 4 * size);
// Draw rectangles in the angles // Draw rectangles in the angles
LCD_Draw_Rectangle(1, 1, 20, 20, RED); LCD_Draw_Rectangle(1, 1, 20, 20, RED);

View File

@ -101,8 +101,9 @@ int main(void)
/* USER CODE BEGIN WHILE */ /* USER CODE BEGIN WHILE */
while (1) while (1)
{ {
HAL_Delay(500);
LCD_Init(); LCD_Init();
HAL_Delay(10000);
HAL_Delay(10);
/* USER CODE END WHILE */ /* USER CODE END WHILE */

View File

@ -1,4 +1,4 @@
/* USER CODE BEGIN Header */ /* USER CODE BEGIN */
/** /**
****************************************************************************** ******************************************************************************
* @file stm32f1xx_hal_msp.c * @file stm32f1xx_hal_msp.c
@ -16,56 +16,56 @@
* *
****************************************************************************** ******************************************************************************
*/ */
/* USER CODE END Header */ /* USER CODE END */
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "main.h" #include "main.h"
/* USER CODE BEGIN Includes */ /* USER CODE BEGIN */
/* USER CODE END Includes */ /* USER CODE END */
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN TD */ /* USER CODE BEGIN */
/* USER CODE END TD */ /* USER CODE END */
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN Define */ /* USER CODE BEGIN */
/* USER CODE END Define */ /* USER CODE END */
/* Private macro -------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN Macro */ /* USER CODE BEGIN */
/* USER CODE END Macro */ /* USER CODE END */
/* Private variables ---------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */ /* USER CODE BEGIN */
/* USER CODE END PV */ /* USER CODE END */
/* Private function prototypes -----------------------------------------------*/ /* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN PFP */ /* USER CODE BEGIN */
/* USER CODE END PFP */ /* USER CODE END */
/* External functions --------------------------------------------------------*/ /* External functions --------------------------------------------------------*/
/* USER CODE BEGIN ExternalFunctions */ /* USER CODE BEGIN */
/* USER CODE END ExternalFunctions */ /* USER CODE END */
/* USER CODE BEGIN 0 */ /* USER CODE BEGIN */
/* USER CODE END 0 */ /* USER CODE END */
/** /**
* Initializes the Global MSP. * Initializes the Global MSP.
*/ */
void HAL_MspInit(void) void HAL_MspInit(void)
{ {
/* USER CODE BEGIN MspInit 0 */ /* USER CODE BEGIN */
/* USER CODE END MspInit 0 */ /* USER CODE END */
__HAL_RCC_AFIO_CLK_ENABLE(); __HAL_RCC_AFIO_CLK_ENABLE();
__HAL_RCC_PWR_CLK_ENABLE(); __HAL_RCC_PWR_CLK_ENABLE();
@ -76,9 +76,9 @@ void HAL_MspInit(void)
*/ */
__HAL_AFIO_REMAP_SWJ_NOJTAG(); __HAL_AFIO_REMAP_SWJ_NOJTAG();
/* USER CODE BEGIN MspInit 1 */ /* USER CODE BEGIN */
/* USER CODE END MspInit 1 */ /* USER CODE END */
} }
/** /**
@ -92,9 +92,9 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(hspi->Instance==SPI1) if(hspi->Instance==SPI1)
{ {
/* USER CODE BEGIN SPI1_MspInit 0 */ /* USER CODE BEGIN */
/* USER CODE END SPI1_MspInit 0 */ /* USER CODE END */
/* Peripheral clock enable */ /* Peripheral clock enable */
__HAL_RCC_SPI1_CLK_ENABLE(); __HAL_RCC_SPI1_CLK_ENABLE();
@ -115,9 +115,9 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/* USER CODE BEGIN SPI1_MspInit 1 */ /* USER CODE BEGIN */
/* USER CODE END SPI1_MspInit 1 */ /* USER CODE END */
} }
@ -133,9 +133,9 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
{ {
if(hspi->Instance==SPI1) if(hspi->Instance==SPI1)
{ {
/* USER CODE BEGIN SPI1_MspDeInit 0 */ /* USER CODE BEGIN */
/* USER CODE END SPI1_MspDeInit 0 */ /* USER CODE END */
/* Peripheral clock disable */ /* Peripheral clock disable */
__HAL_RCC_SPI1_CLK_DISABLE(); __HAL_RCC_SPI1_CLK_DISABLE();
@ -147,9 +147,9 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi)
*/ */
HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); HAL_GPIO_DeInit(GPIOA, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7);
/* USER CODE BEGIN SPI1_MspDeInit 1 */ /* USER CODE BEGIN */
/* USER CODE END SPI1_MspDeInit 1 */ /* USER CODE END */
} }
} }
@ -165,9 +165,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitTypeDef GPIO_InitStruct = {0};
if(huart->Instance==USART1) if(huart->Instance==USART1)
{ {
/* USER CODE BEGIN USART1_MspInit 0 */ /* USER CODE BEGIN */
/* USER CODE END USART1_MspInit 0 */ /* USER CODE END */
/* Peripheral clock enable */ /* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE(); __HAL_RCC_USART1_CLK_ENABLE();
@ -188,9 +188,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
__HAL_AFIO_REMAP_USART1_ENABLE(); __HAL_AFIO_REMAP_USART1_ENABLE();
/* USER CODE BEGIN USART1_MspInit 1 */ /* USER CODE BEGIN */
/* USER CODE END USART1_MspInit 1 */ /* USER CODE END */
} }
@ -206,9 +206,9 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
{ {
if(huart->Instance==USART1) if(huart->Instance==USART1)
{ {
/* USER CODE BEGIN USART1_MspDeInit 0 */ /* USER CODE BEGIN */
/* USER CODE END USART1_MspDeInit 0 */ /* USER CODE END */
/* Peripheral clock disable */ /* Peripheral clock disable */
__HAL_RCC_USART1_CLK_DISABLE(); __HAL_RCC_USART1_CLK_DISABLE();
@ -218,13 +218,13 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
*/ */
HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7); HAL_GPIO_DeInit(GPIOB, GPIO_PIN_6|GPIO_PIN_7);
/* USER CODE BEGIN USART1_MspDeInit 1 */ /* USER CODE BEGIN */
/* USER CODE END USART1_MspDeInit 1 */ /* USER CODE END */
} }
} }
/* USER CODE BEGIN 1 */ /* USER CODE BEGIN */
/* USER CODE END 1 */ /* USER CODE END */