Vedel by mi niekto pomoct s kodom pre TFT displej bez FSMC?? Ide o displej DT028TFT.
moj kod pre konfiguraciu GPIO
void LCD_CtrlLinesConfig(void)
{
RCC->APB2ENR |= 0x0000003C; /* Enable GPIOA GPIOB GPIOC clock */
GPIOB->CRL |= 0xBBBBBBBB; /* Alternate Function push-pull, 50Mhz*/
GPIOB->CRH |= 0xBBBBBBBB; /* Alternate Function push-pull, 50Mhz */
GPIOA->CRL |= (0x03UL << 4); //nastavenie A1-reset push/pull 50Mhz
GPIOA->CRL |= (0x0BUL << 0); //nastavenie A0-CS Alternate Function push-pull, 50Mhz
GPIOA->CRL |= (0x0BUL << 8); //nastavenie A2 Alternate Function push-pull, 50Mhz
GPIOA->CRH |= (0x0BUL << 24); //nastavenie A14-WR Alternate Function push-pull, 50Mhz
GPIOC->CRL |= (0xBBBBUL << 16); //nastavenie C4 C5 C6 C7 Alternate Function push-pull, 50Mhz
}
a pre vysielanie dat do LCD (zrejme nefunkcny)
void LCD_WriteReg(uint8_t LCD_Reg, uint16_t LCD_RegValue)
{
/* Write 16-bit Index, then Write Reg */
// LCD->LCD_REG = LCD_Reg;
/* Write 16-bit Reg */
// LCD->LCD_RAM = LCD_RegValue;
int i=0;
GPIOB->ODR = LCD_Reg;
GPIOA->ODR = LCD_Reg;
GPIOC->ODR = (LCD_Reg >> 4);
for(i=0;i==1000;i++);
GPIOA->BSRR=GPIO_BSRR_BS0;
GPIOA->BSRR=GPIO_BSRR_BS14;
GPIOC->BSRR=GPIO_BSRR_BS5;
for(i=0;i==1000;i++);
GPIOA->BSRR=GPIO_BSRR_BS14;
GPIOC->BSRR=GPIO_BSRR_BS5;
for(i=0;i==1000;i++);
GPIOB->ODR = LCD_RegValue;
GPIOA->ODR = LCD_RegValue;
GPIOC->ODR = (LCD_RegValue >> 4);
for(i=0;i==10000;i++);
GPIOA->BSRR=GPIO_BSRR_BS14;
for(i=0;i==10000;i++);
GPIOA->BSRR=GPIO_BSRR_BS14;
}