Estoy intentando que esta pantalla Hy28b funcione con mi MCU stm32f103. De alguna manera la pantalla no responde. Descubrí que no puedo comunicarme con él, mi configuración de SPI es la siguiente:
GPIO_InitTypeDef initSPI;
initSPI.GPIO_Mode = GPIO_Mode_AF_PP;
initSPI.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7; // sck mosi
initSPI.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &initSPI);
initSPI.GPIO_Pin = GPIO_Pin_6;
initSPI.GPIO_Mode = GPIO_Mode_IN_FLOATING; ///miso
GPIO_Init(GPIOA, &initSPI);
SPI_InitTypeDef initStruct;
SPI_StructInit(&initStruct);
initStruct.SPI_Mode = SPI_Mode_Master;
initStruct.SPI_CPHA = SPI_CPHA_2Edge;
initStruct.SPI_CPOL = SPI_CPOL_Low;
initStruct.SPI_NSS = SPI_NSS_Soft;
initStruct.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32;
SPI_Init(SPI1, &initStruct);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
SPI_Cmd(SPI1, ENABLE);
GPIO_InitTypeDef initGPIO;
initGPIO.GPIO_Mode = GPIO_Mode_Out_PP;
initGPIO.GPIO_Pin = GPIO_Pin_4; //CS
initGPIO.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &initGPIO);
Y modifiqué la función de envío de muestra:
unsigned char STM32_SPI_TxRxByte (unsigned char byte_s)
{
/* wait for current SPI activity complete */
while (SPI1->SR&SPI_SR_BSY);
SPI_I2S_SendData(SPI1, (unsigned short) byte_s);
while((SPI1->SR&SPI_SR_RXNE));
return (SPI_I2S_ReceiveData(SPI1););
}
¿Qué me estoy perdiendo aquí?