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 LCD_SCREEN_HEIGHT 470 // ST7365 is 480 (aligned at the origin)
#define LCD_SCREEN_WIDTH 282 // ST7365 is 320 (centered, offset = 19)
#define LCD_SCREEN_HEIGHT 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
#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 */
void LCD_Set_Address(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2) {
LCD_Write_Command(0x2A);
LCD_Write_Data16(X1);
LCD_Write_Data16(X2);
LCD_Write_Data16(X1 + 10);
LCD_Write_Data16(X2 + 10);
LCD_Write_Command(0x2B);
LCD_Write_Data16(Y1);
LCD_Write_Data16(Y2);
LCD_Write_Data16(Y1 + 19);
LCD_Write_Data16(Y2 + 19);
LCD_Write_Command(0x2C);
}
@ -164,8 +164,10 @@ void LCD_Init(void) {
// Enable color inversion (INVON)
LCD_Write_Command(0x21);
// Disable partial mode
LCD_Write_Command(0x13);
// Configure orientation stuff
LCD_Write_Command(0x36);
LCD_Write_Data(0b10110100);
// Exit sleep
LCD_Write_Command(0x11);
@ -177,24 +179,22 @@ void LCD_Init(void) {
// Fill 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
LCD_Set_Address(20, 20, LCD_SCREEN_WIDTH - 60, LCD_SCREEN_WIDTH - 60);
uint32_t size = (LCD_SCREEN_WIDTH - 40) * 20;
LCD_Set_Address(30, 30, LCD_SCREEN_WIDTH - 30, LCD_SCREEN_HEIGHT - 30);
uint32_t size = (LCD_SCREEN_WIDTH - 59) * 20;
LCD_Draw_Colour_Burst(BLACK, size);
LCD_Draw_Colour_Burst(WHITE, size);
LCD_Draw_Colour_Burst(BLUE, size);
LCD_Draw_Colour_Burst(GREEN, size);
LCD_Draw_Colour_Burst(RED, size);
LCD_Draw_Colour_Burst(BLACK, 4 * size);
// Draw rectangles in the angles
LCD_Draw_Rectangle(1, 1, 20, 20, RED);
LCD_Draw_Rectangle(LCD_SCREEN_WIDTH - 21, 1, 20, 20, GREEN);
LCD_Draw_Rectangle(LCD_SCREEN_WIDTH - 21, LCD_SCREEN_HEIGHT - 21, 20, 20,
MAGENTA);
MAGENTA);
LCD_Draw_Rectangle(1, LCD_SCREEN_HEIGHT - 21, 20, 20, BLUE);
// STARTING ROTATION

View File

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

View File

@ -1,4 +1,4 @@
/* USER CODE BEGIN Header */
/* USER CODE BEGIN */
/**
******************************************************************************
* @file stm32f1xx_hal_msp.c
@ -16,56 +16,56 @@
*
******************************************************************************
*/
/* USER CODE END Header */
/* USER CODE END */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* USER CODE BEGIN Includes */
/* USER CODE BEGIN */
/* USER CODE END Includes */
/* USER CODE END */
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN TD */
/* USER CODE BEGIN */
/* USER CODE END TD */
/* USER CODE END */
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN Define */
/* USER CODE BEGIN */
/* USER CODE END Define */
/* USER CODE END */
/* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN Macro */
/* USER CODE BEGIN */
/* USER CODE END Macro */
/* USER CODE END */
/* Private variables ---------------------------------------------------------*/
/* USER CODE BEGIN PV */
/* USER CODE BEGIN */
/* USER CODE END PV */
/* USER CODE END */
/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN PFP */
/* USER CODE BEGIN */
/* USER CODE END PFP */
/* USER CODE END */
/* 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.
*/
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_PWR_CLK_ENABLE();
@ -76,9 +76,9 @@ void HAL_MspInit(void)
*/
__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};
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 */
__HAL_RCC_SPI1_CLK_ENABLE();
@ -115,9 +115,9 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi)
GPIO_InitStruct.Pull = GPIO_NOPULL;
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)
{
/* USER CODE BEGIN SPI1_MspDeInit 0 */
/* USER CODE BEGIN */
/* USER CODE END SPI1_MspDeInit 0 */
/* USER CODE END */
/* Peripheral clock 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);
/* 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};
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 */
__HAL_RCC_USART1_CLK_ENABLE();
@ -188,9 +188,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart)
__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)
{
/* USER CODE BEGIN USART1_MspDeInit 0 */
/* USER CODE BEGIN */
/* USER CODE END USART1_MspDeInit 0 */
/* USER CODE END */
/* Peripheral clock 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);
/* 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 */