ioc changed hard spi tft

This commit is contained in:
TuxMonkey
2026-07-20 16:41:16 +08:00
parent f92585831a
commit 9ea9ddf310
4 changed files with 28 additions and 8 deletions

View File

@@ -44,12 +44,12 @@ void MX_SPI1_Init(void)
/* USER CODE END SPI1_Init 1 */ /* USER CODE END SPI1_Init 1 */
hspi1.Instance = SPI1; hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER; hspi1.Init.Mode = SPI_MODE_MASTER;
hspi1.Init.Direction = SPI_DIRECTION_2LINES_TXONLY; hspi1.Init.Direction = SPI_DIRECTION_2LINES;
hspi1.Init.DataSize = SPI_DATASIZE_8BIT; hspi1.Init.DataSize = SPI_DATASIZE_8BIT;
hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPolarity = SPI_POLARITY_LOW;
hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE;
hspi1.Init.NSS = SPI_NSS_SOFT; hspi1.Init.NSS = SPI_NSS_SOFT;
hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16;
hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB;
hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.TIMode = SPI_TIMODE_DISABLE;
hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
@@ -149,14 +149,14 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle)
GPIO_InitStruct.Pin = GPIO_PIN_7; GPIO_InitStruct.Pin = GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4; GPIO_InitStruct.Pin = GPIO_PIN_3|GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; GPIO_InitStruct.Alternate = GPIO_AF5_SPI1;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

View File

@@ -653,9 +653,13 @@ PB13.Locked=true
PB13.Mode=Full_Duplex_Master PB13.Mode=Full_Duplex_Master
PB13.Signal=SPI2_SCK PB13.Signal=SPI2_SCK
PB15.Signal=S_TIM12_CH2 PB15.Signal=S_TIM12_CH2
PB3(JTDO/TRACESWO).GPIOParameters=GPIO_Speed
PB3(JTDO/TRACESWO).GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PB3(JTDO/TRACESWO).Locked=true PB3(JTDO/TRACESWO).Locked=true
PB3(JTDO/TRACESWO).Mode=Full_Duplex_Master PB3(JTDO/TRACESWO).Mode=Full_Duplex_Master
PB3(JTDO/TRACESWO).Signal=SPI1_SCK PB3(JTDO/TRACESWO).Signal=SPI1_SCK
PB4(NJTRST).GPIOParameters=GPIO_Speed
PB4(NJTRST).GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PB4(NJTRST).Locked=true PB4(NJTRST).Locked=true
PB4(NJTRST).Mode=Full_Duplex_Master PB4(NJTRST).Mode=Full_Duplex_Master
PB4(NJTRST).Signal=SPI1_MISO PB4(NJTRST).Signal=SPI1_MISO
@@ -736,6 +740,8 @@ PD5.Signal=USART2_TX
PD6.Locked=true PD6.Locked=true
PD6.Mode=Asynchronous PD6.Mode=Asynchronous
PD6.Signal=USART2_RX PD6.Signal=USART2_RX
PD7.GPIOParameters=GPIO_Speed
PD7.GPIO_Speed=GPIO_SPEED_FREQ_HIGH
PD7.Locked=true PD7.Locked=true
PD7.Mode=Full_Duplex_Master PD7.Mode=Full_Duplex_Master
PD7.Signal=SPI1_MOSI PD7.Signal=SPI1_MOSI
@@ -914,11 +920,11 @@ SH.S_TIM3_CH4.ConfNb=1
SH.SharedStack_PC12.0=SPI3_MOSI SH.SharedStack_PC12.0=SPI3_MOSI
SH.SharedStack_PC12.1=UART5_TX,Asynchronous SH.SharedStack_PC12.1=UART5_TX,Asynchronous
SH.SharedStack_PC12.ConfNb=2 SH.SharedStack_PC12.ConfNb=2
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8 SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
SPI1.CLKPolarity=SPI_POLARITY_LOW SPI1.CLKPolarity=SPI_POLARITY_LOW
SPI1.CalculateBaudRate=15.0 MBits/s SPI1.CalculateBaudRate=7.5 MBits/s
SPI1.DataSize=SPI_DATASIZE_8BIT SPI1.DataSize=SPI_DATASIZE_8BIT
SPI1.Direction=SPI_DIRECTION_2LINES_TXONLY SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,DataSize,BaudRatePrescaler,CLKPolarity
SPI1.Mode=SPI_MODE_MASTER SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualType=VM_MASTER SPI1.VirtualType=VM_MASTER

View File

@@ -158,6 +158,18 @@ static void tft_write_bytes(const uint8_t *data, uint32_t len)
#else #else
while (len > 0U) while (len > 0U)
{ {
#if TFT_HW_SPI_BYTE_MODE && TFT_HW_SPI_PULSE_CS
tft_cs_low();
if (HAL_SPI_Transmit(&TFT_SPI_UNIT, (uint8_t *) data, 1U, TFT_SPI_TIMEOUT_MS) != HAL_OK)
{
tft_transfer_ok = false;
tft_cs_high();
return;
}
tft_cs_high();
data++;
len--;
#else
#if TFT_HW_SPI_BYTE_MODE #if TFT_HW_SPI_BYTE_MODE
uint16_t chunk = 1U; uint16_t chunk = 1U;
#else #else
@@ -171,6 +183,7 @@ static void tft_write_bytes(const uint8_t *data, uint32_t len)
} }
data += chunk; data += chunk;
len -= chunk; len -= chunk;
#endif
} }
#endif #endif
} }

View File

@@ -11,8 +11,9 @@ extern "C" {
#endif #endif
#define TFT_USE_HORIZONTAL 2U #define TFT_USE_HORIZONTAL 2U
#define TFT_USE_SOFT_SPI 1U #define TFT_USE_SOFT_SPI 0U
#define TFT_HW_SPI_BYTE_MODE 1U #define TFT_HW_SPI_BYTE_MODE 1U
#define TFT_HW_SPI_PULSE_CS 1U
#if (TFT_USE_HORIZONTAL == 0U) || (TFT_USE_HORIZONTAL == 1U) #if (TFT_USE_HORIZONTAL == 0U) || (TFT_USE_HORIZONTAL == 1U)
#define TFT_LCD_W 240U #define TFT_LCD_W 240U