Все заработало, с цветами только не понятки и медленно рисует
У меня из цветов только оттенки синего, где я мог налажать?

Код: Выделить всё
while (1){
/* CASET: Comumn Addrses Set */
y=0;
while( y < 240)
{
x=0;
while( x < 240)
{
WritePixel(x, y , x+y);
x++;
}
y++;
}
Код: Выделить всё
void WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode)
{
/* Set Cursor */
uint8_t parameter1[4];
parameter1[0] = 0x00;
parameter1[1] = 0x00 + Xpos;// +X
parameter1[2] = 0x00;
parameter1[3] = 0xEF + Xpos;// +x
WriteReg(0x2A, parameter1, 4);
/* RASET: Row Addrses Set */
parameter1[0] = 0x00;
parameter1[1] = 0x00 + Ypos;// +y
parameter1[2] = 0x00;
parameter1[3] = 0xEF + Ypos;// +y
WriteReg(0x2B, parameter1, 4);
/* Prepare to write to LCD RAM */
WriteReg(0x2C, (uint8_t*)NULL, 0); /* RAM write data command */
/* Write RAM data */
WriteData(RGBCode);
}
Код: Выделить всё
void WriteReg(uint8_t Command, uint8_t *Parameters, uint8_t NbParameters)
{
uint8_t i;
/* Send command */
((LCTDef *) (uint32_t)(0x60000000 | 0x00000000))->REG = Command;//LCD_IO_WriteReg(Command);
__DSB();
/* Send command's parameters if any */
for (i=0; i<NbParameters; i++)
{
//FMC_BANK1_WriteData(Parameters[i]);
((LCTDef *)(uint32_t)(0x60000000 | 0x00000000))->RAM = Parameters[i];//LCD_IO_WriteData(Parameters[i]);
__DSB();
}
}
void WriteData(uint8_t Command)
{
((LCTDef *)(uint32_t)(0x60000000 | 0x00000000))->RAM = Command;//LCD_IO_WriteData(Parameters[i]);
__DSB();
}
Выручайте братцы почти получилось
Добавлено after 6 minutes 9 seconds:И отрисовка медленная, весь экранчик 240х240 за пару секунд
Градиентик
WritePixel(x, y , (x+y)/15);

Я думал это переменная LCTDef виновата, но с подменой в примере этой переменной на мою ни чего не меняется, там цвета есть(
Добавлено after 18 minutes 20 seconds:В примере часто мелькают функции чтения я так понимаю из дисплея что то читают, это же не нужно по определению?
Кто то может расшифровать эту строку?
((LCTDef *)(uint32_t)(0x60000000 | 0x00000000))->RAM =
Добавлено after 3 hours 42 minutes 38 seconds:Сразу оговорюсь 0хFFFFFFFF Дает голубой ну и 0х0 черный
Добавлено after 4 minutes 47 seconds:Код: Выделить всё
void ST7789H2_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode)
{
/* Set Cursor */
ST7789H2_SetCursor(Xpos, Ypos);
/* Prepare to write to LCD RAM */
ST7789H2_WriteReg(ST7789H2_WRITE_RAM, (uint8_t*)NULL, 0); /* RAM write data command */
/* Write RAM data */
//LCD_IO_WriteData(RGBCode);
((LCTDef *)(uint32_t)(0x60000000 | 0x00000000))->RAM = RGBCode;
}
Так все работает в примере, LCTDef моя структура и в примере ни где более не используется