stm32f103xb_spi_lcds: fix wrong indents

This commit is contained in:
wangyz1997 2024-01-07 23:38:09 +08:00
parent 8865ab607f
commit 500130bf8a
2 changed files with 160 additions and 160 deletions

View File

@ -3,214 +3,214 @@
static void bsp_lcd_write_cmd(uint8_t cmd) static void bsp_lcd_write_cmd(uint8_t cmd)
{ {
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi1, &cmd, 1, 200); HAL_SPI_Transmit(&hspi1, &cmd, 1, 200);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET);
} }
static void bsp_lcd_write_register(uint8_t addr, uint16_t reg_val) static void bsp_lcd_write_register(uint8_t addr, uint16_t reg_val)
{ {
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_RESET);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
HAL_SPI_Transmit(&hspi1, &addr, 1, 200); HAL_SPI_Transmit(&hspi1, &addr, 1, 200);
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET);
uint8_t temp = reg_val >> 8; uint8_t temp = reg_val >> 8;
HAL_SPI_Transmit(&hspi1, &temp, 1, 200); HAL_SPI_Transmit(&hspi1, &temp, 1, 200);
temp = reg_val; temp = reg_val;
HAL_SPI_Transmit(&hspi1, &temp, 1, 200); HAL_SPI_Transmit(&hspi1, &temp, 1, 200);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET);
} }
static void bsp_lcd_reset(void) static void bsp_lcd_reset(void)
{ {
HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_RESET);
HAL_Delay(20); HAL_Delay(20);
HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_RST_GPIO_Port, LCD_RST_Pin, GPIO_PIN_SET);
HAL_Delay(10); HAL_Delay(10);
} }
void bsp_lcd_init(void) void bsp_lcd_init(void)
{ {
bsp_lcd_reset(); bsp_lcd_reset();
// LCD Init For 2.2inch LCD Panel with ILI9225. // LCD Init For 2.2inch LCD Panel with ILI9225.
bsp_lcd_write_register(0x10, 0x0000); // Set SAP, DSTB, STB bsp_lcd_write_register(0x10, 0x0000); // Set SAP, DSTB, STB
bsp_lcd_write_register(0x11, 0x0000); // Set APON, PON, AON, VCI1EN, VC bsp_lcd_write_register(0x11, 0x0000); // Set APON, PON, AON, VCI1EN, VC
bsp_lcd_write_register(0x12, 0x0000); // Set BT, DC1, DC2, DC3 bsp_lcd_write_register(0x12, 0x0000); // Set BT, DC1, DC2, DC3
bsp_lcd_write_register(0x13, 0x0000); // Set GVDD bsp_lcd_write_register(0x13, 0x0000); // Set GVDD
bsp_lcd_write_register(0x14, 0x0000); // Set VCOMH/VCOML voltage bsp_lcd_write_register(0x14, 0x0000); // Set VCOMH/VCOML voltage
HAL_Delay(20); HAL_Delay(20);
// Please follow this power on sequence // Please follow this power on sequence
bsp_lcd_write_register(0x11, 0x0018); // Set APON, PON, AON, VCI1EN, VC bsp_lcd_write_register(0x11, 0x0018); // Set APON, PON, AON, VCI1EN, VC
bsp_lcd_write_register(0x12, 0x1121); // Set BT, DC1, DC2, DC3 bsp_lcd_write_register(0x12, 0x1121); // Set BT, DC1, DC2, DC3
bsp_lcd_write_register(0x13, 0x0063); // Set GVDD bsp_lcd_write_register(0x13, 0x0063); // Set GVDD
bsp_lcd_write_register(0x14, 0x3961); // Set VCOMH/VCOML voltage bsp_lcd_write_register(0x14, 0x3961); // Set VCOMH/VCOML voltage
bsp_lcd_write_register(0x10, 0x0800); // Set SAP, DSTB, STB bsp_lcd_write_register(0x10, 0x0800); // Set SAP, DSTB, STB
HAL_Delay(10); HAL_Delay(10);
bsp_lcd_write_register(0x11, 0x1038); // Set APON, PON, AON, VCI1EN, VC bsp_lcd_write_register(0x11, 0x1038); // Set APON, PON, AON, VCI1EN, VC
HAL_Delay(30); HAL_Delay(30);
bsp_lcd_write_register(0x02, 0x0100); // set 1 line inversion bsp_lcd_write_register(0x02, 0x0100); // set 1 line inversion
// R01H:SM=0, GS=0, SS=1 (for details, See the datasheet of ILI9225) // R01H:SM=0, GS=0, SS=1 (for details, See the datasheet of ILI9225)
bsp_lcd_write_register(0x01, 0x011C); // set the display line number and display direction bsp_lcd_write_register(0x01, 0x011C); // set the display line number and display direction
//R01H:SM=0, GS=1, SS=0 (for details,See the datasheet of ILI9225) //R01H:SM=0, GS=1, SS=0 (for details,See the datasheet of ILI9225)
//bsp_lcd_write_register(0x01, 0x021C); // set the display line number and display direction //bsp_lcd_write_register(0x01, 0x021C); // set the display line number and display direction
bsp_lcd_write_register(0x03, 0x1030); // set GRAM write direction. bsp_lcd_write_register(0x03, 0x1030); // set GRAM write direction.
bsp_lcd_write_register(0x07, 0x0000); // Display off bsp_lcd_write_register(0x07, 0x0000); // Display off
bsp_lcd_write_register(0x08, 0x0808); // set the back porch and front porch bsp_lcd_write_register(0x08, 0x0808); // set the back porch and front porch
bsp_lcd_write_register(0x0B, 0x1100); // set the clocks number per line bsp_lcd_write_register(0x0B, 0x1100); // set the clocks number per line
bsp_lcd_write_register(0x0C, 0x0000); // CPU interface bsp_lcd_write_register(0x0C, 0x0000); // CPU interface
bsp_lcd_write_register(0x0F, 0x0501); // Set Osc bsp_lcd_write_register(0x0F, 0x0501); // Set Osc
bsp_lcd_write_register(0x15, 0x0020); // Set VCI recycling bsp_lcd_write_register(0x15, 0x0020); // Set VCI recycling
bsp_lcd_write_register(0x20, 0x0000); // RAM Address bsp_lcd_write_register(0x20, 0x0000); // RAM Address
bsp_lcd_write_register(0x21, 0x0000); // RAM Address bsp_lcd_write_register(0x21, 0x0000); // RAM Address
//------------------------ Set GRAM area --------------------------------// //------------------------ Set GRAM area --------------------------------//
bsp_lcd_write_register(0x30, 0x0000); bsp_lcd_write_register(0x30, 0x0000);
bsp_lcd_write_register(0x31, 0x00DB); bsp_lcd_write_register(0x31, 0x00DB);
bsp_lcd_write_register(0x32, 0x0000); bsp_lcd_write_register(0x32, 0x0000);
bsp_lcd_write_register(0x33, 0x0000); bsp_lcd_write_register(0x33, 0x0000);
bsp_lcd_write_register(0x34, 0x00DB); bsp_lcd_write_register(0x34, 0x00DB);
bsp_lcd_write_register(0x35, 0x0000); bsp_lcd_write_register(0x35, 0x0000);
bsp_lcd_write_register(0x36, 0x00AF); bsp_lcd_write_register(0x36, 0x00AF);
bsp_lcd_write_register(0x37, 0x0000); bsp_lcd_write_register(0x37, 0x0000);
bsp_lcd_write_register(0x38, 0x00DB); bsp_lcd_write_register(0x38, 0x00DB);
bsp_lcd_write_register(0x39, 0x0000); bsp_lcd_write_register(0x39, 0x0000);
// ---------- Adjust the Gamma 2.2 Curve -------------------// // ---------- Adjust the Gamma 2.2 Curve -------------------//
bsp_lcd_write_register(0x50, 0x0603); bsp_lcd_write_register(0x50, 0x0603);
bsp_lcd_write_register(0x51, 0x080D); bsp_lcd_write_register(0x51, 0x080D);
bsp_lcd_write_register(0x52, 0x0D0C); bsp_lcd_write_register(0x52, 0x0D0C);
bsp_lcd_write_register(0x53, 0x0205); bsp_lcd_write_register(0x53, 0x0205);
bsp_lcd_write_register(0x54, 0x040A); bsp_lcd_write_register(0x54, 0x040A);
bsp_lcd_write_register(0x55, 0x0703); bsp_lcd_write_register(0x55, 0x0703);
bsp_lcd_write_register(0x56, 0x0300); bsp_lcd_write_register(0x56, 0x0300);
bsp_lcd_write_register(0x57, 0x0400); bsp_lcd_write_register(0x57, 0x0400);
bsp_lcd_write_register(0x58, 0x0B00); bsp_lcd_write_register(0x58, 0x0B00);
bsp_lcd_write_register(0x59, 0x0017); bsp_lcd_write_register(0x59, 0x0017);
bsp_lcd_write_register(0x0F, 0x0701); // Vertical RAM Address Position bsp_lcd_write_register(0x0F, 0x0701); // Vertical RAM Address Position
bsp_lcd_write_register(0x07, 0x0012); // Vertical RAM Address Position bsp_lcd_write_register(0x07, 0x0012); // Vertical RAM Address Position
HAL_Delay(50); // Delay 50 ms HAL_Delay(50); // Delay 50 ms
bsp_lcd_write_register(0x07, 0x1017); // Vertical RAM Address Position bsp_lcd_write_register(0x07, 0x1017); // Vertical RAM Address Position
} }
void bsp_lcd_set_region(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1) void bsp_lcd_set_region(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1)
{ {
bsp_lcd_write_register(0x36, x1); bsp_lcd_write_register(0x36, x1);
bsp_lcd_write_register(0x37, x0); bsp_lcd_write_register(0x37, x0);
bsp_lcd_write_register(0x38, y1); bsp_lcd_write_register(0x38, y1);
bsp_lcd_write_register(0x39, y0); // Set coordinate of left-top corner and right-bottom corner of the box bsp_lcd_write_register(0x39, y0); // Set coordinate of left-top corner and right-bottom corner of the box
bsp_lcd_write_register(0x20, x0); bsp_lcd_write_register(0x20, x0);
bsp_lcd_write_register(0x21, y0); // Set position of the pointer bsp_lcd_write_register(0x21, y0); // Set position of the pointer
} }
/* /*
void bsp_lcd_fill(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color) void bsp_lcd_fill(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color)
{ {
bsp_lcd_set_region(x0, y0, x1, y1); bsp_lcd_set_region(x0, y0, x1, y1);
bsp_lcd_write_cmd(0x22); // Start to write pixel data bsp_lcd_write_cmd(0x22); // Start to write pixel data
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_16BIT; hspi1.Init.DataSize = SPI_DATASIZE_16BIT;
HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
for (uint16_t i = 0; i < (y1 - y0 + 1) * (x1 - x0 + 1); i ++) { for (uint16_t i = 0; i < (y1 - y0 + 1) * (x1 - x0 + 1); i ++) {
HAL_SPI_Transmit(&hspi1, (uint8_t*)&color, 1, 200); HAL_SPI_Transmit(&hspi1, (uint8_t*)&color, 1, 200);
} }
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET);
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
HAL_SPI_Init(&hspi1); HAL_SPI_Init(&hspi1);
} }
void bsp_lcd_draw_bitmap(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint16_t *color) void bsp_lcd_draw_bitmap(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint16_t *color)
{ {
bsp_lcd_set_region(x0, y0, x1, y1); bsp_lcd_set_region(x0, y0, x1, y1);
bsp_lcd_write_cmd(0x22); // Start to write pixel data bsp_lcd_write_cmd(0x22); // Start to write pixel data
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_16BIT; hspi1.Init.DataSize = SPI_DATASIZE_16BIT;
HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
for (uint16_t i = 0; i < (y1 - y0 + 1) * (x1 - x0 + 1); i ++) { for (uint16_t i = 0; i < (y1 - y0 + 1) * (x1 - x0 + 1); i ++) {
HAL_SPI_Transmit(&hspi1, (uint8_t*)&color[i], 1, 200); HAL_SPI_Transmit(&hspi1, (uint8_t*)&color[i], 1, 200);
} }
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET);
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
HAL_SPI_Init(&hspi1); HAL_SPI_Init(&hspi1);
} }
*/ */
void bsp_lcd_fill(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color) void bsp_lcd_fill(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color)
{ {
bsp_lcd_set_region(x0, y0, x1, y1); bsp_lcd_set_region(x0, y0, x1, y1);
bsp_lcd_write_cmd(0x22); // Start to write pixel data bsp_lcd_write_cmd(0x22); // Start to write pixel data
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_16BIT; hspi1.Init.DataSize = SPI_DATASIZE_16BIT;
HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode
HAL_DMA_DeInit(&hdma_spi1_tx); HAL_DMA_DeInit(&hdma_spi1_tx);
hdma_spi1_tx.Init.MemInc = DMA_MINC_DISABLE; hdma_spi1_tx.Init.MemInc = DMA_MINC_DISABLE;
HAL_DMA_Init(&hdma_spi1_tx); HAL_DMA_Init(&hdma_spi1_tx);
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
HAL_SPI_Transmit_DMA(&hspi1, (uint8_t*)&color, (y1 - y0 + 1) * (x1 - x0 + 1)); HAL_SPI_Transmit_DMA(&hspi1, (uint8_t*)&color, (y1 - y0 + 1) * (x1 - x0 + 1));
HAL_DMA_PollForTransfer(&hdma_spi1_tx, HAL_DMA_FULL_TRANSFER, 200); HAL_DMA_PollForTransfer(&hdma_spi1_tx, HAL_DMA_FULL_TRANSFER, 200);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET);
HAL_DMA_DeInit(&hdma_spi1_tx); HAL_DMA_DeInit(&hdma_spi1_tx);
hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE;
HAL_DMA_Init(&hdma_spi1_tx); HAL_DMA_Init(&hdma_spi1_tx);
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
HAL_SPI_Init(&hspi1); HAL_SPI_Init(&hspi1);
} }
void bsp_lcd_draw_bitmap(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint16_t *color) void bsp_lcd_draw_bitmap(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, const uint16_t *color)
{ {
bsp_lcd_set_region(x0, y0, x1, y1); bsp_lcd_set_region(x0, y0, x1, y1);
bsp_lcd_write_cmd(0x22); // Start to write pixel data bsp_lcd_write_cmd(0x22); // Start to write pixel data
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_16BIT; hspi1.Init.DataSize = SPI_DATASIZE_16BIT;
HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode HAL_SPI_Init(&hspi1); // switch SPI to 16bit mode
HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_DC_GPIO_Port, LCD_DC_Pin, GPIO_PIN_SET);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_RESET);
HAL_SPI_Transmit_DMA(&hspi1, (uint8_t*)color, (y1 - y0 + 1) * (x1 - x0 + 1)); HAL_SPI_Transmit_DMA(&hspi1, (uint8_t*)color, (y1 - y0 + 1) * (x1 - x0 + 1));
HAL_DMA_PollForTransfer(&hdma_spi1_tx, HAL_DMA_FULL_TRANSFER, 200); HAL_DMA_PollForTransfer(&hdma_spi1_tx, HAL_DMA_FULL_TRANSFER, 200);
HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(LCD_CS_GPIO_Port, LCD_CS_Pin, GPIO_PIN_SET);
HAL_SPI_DeInit(&hspi1); HAL_SPI_DeInit(&hspi1);
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
HAL_SPI_Init(&hspi1); HAL_SPI_Init(&hspi1);
} }

View File

@ -157,7 +157,7 @@ void bsp_lcd_set_region(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1)
bsp_lcd_write_data(y1 >> 8); bsp_lcd_write_data(y1 >> 8);
bsp_lcd_write_data(y1 & 0xFF); bsp_lcd_write_data(y1 & 0xFF);
bsp_lcd_write_cmd(0x2C); bsp_lcd_write_cmd(0x2C);
} }
void bsp_lcd_fill(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color) void bsp_lcd_fill(uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint16_t color)