Чт дек 12, 2019 16:23:43
Пт дек 13, 2019 01:09:40
Пт дек 13, 2019 10:48:36
Пт дек 13, 2019 10:49:59
hsram.Instance = FSMC_NORSRAM_DEVICE;//((0xA0000000U + 0x0000U
hsram.Extended = FSMC_NORSRAM_EXTENDED_DEVICE;
/* Timing for READING BWTR*/
sram_timing.AddressSetupTime = 15;
sram_timing.AddressHoldTime = 0x00;
sram_timing.DataSetupTime = 20;
sram_timing.BusTurnAroundDuration = 0x00;
sram_timing.CLKDivision = 0x00;
sram_timing.DataLatency = 0x00;
sram_timing.AccessMode = FSMC_ACCESS_MODE_A;
/* Timing for WRITTING*/
sram_timing_write.AddressSetupTime = 8;
sram_timing_write.AddressHoldTime = 0;
sram_timing_write.DataSetupTime = 9;
sram_timing_write.BusTurnAroundDuration = 0;
sram_timing_write.CLKDivision = 0;
sram_timing_write.DataLatency = 0;
sram_timing_write.AccessMode = FSMC_ACCESS_MODE_A;
hsram.Init.NSBank = FSMC_NORSRAM_BANK1;//BCTR
hsram.Init.DataAddressMux = FSMC_DATA_ADDRESS_MUX_DISABLE;
hsram.Init.MemoryType = FSMC_MEMORY_TYPE_SRAM;
hsram.Init.MemoryDataWidth = FSMC_NORSRAM_MEM_BUS_WIDTH_16;
hsram.Init.BurstAccessMode = FSMC_BURST_ACCESS_MODE_DISABLE;
hsram.Init.WaitSignalPolarity = FSMC_WAIT_SIGNAL_POLARITY_LOW;
hsram.Init.WrapMode = FSMC_WRAP_MODE_DISABLE;
hsram.Init.WaitSignalActive = FSMC_WAIT_TIMING_BEFORE_WS;
hsram.Init.WriteOperation = FSMC_WRITE_OPERATION_ENABLE;
hsram.Init.WaitSignal = FSMC_WAIT_SIGNAL_DISABLE;
hsram.Init.ExtendedMode = FSMC_EXTENDED_MODE_ENABLE;
hsram.Init.AsynchronousWait = FSMC_ASYNCHRONOUS_WAIT_DISABLE;
hsram.Init.WriteBurst = FSMC_WRITE_BURST_DISABLE;
hsram.Init.WriteFifo = FSMC_WRITE_FIFO_DISABLE;
hsram.Init.PageSize = FSMC_PAGE_SIZE_NONE;
hsram.Init.ContinuousClock = FSMC_CONTINUOUS_CLOCK_SYNC_ONLY;
Пт дек 13, 2019 10:54:58
Пт дек 13, 2019 11:52:16
Пт дек 13, 2019 12:28:18
Пт дек 13, 2019 12:30:04
Пт дек 13, 2019 12:32:53
FSMC_Bank1->BTCR[0] = 0x0000FFFF;
Пт дек 13, 2019 12:58:07
Пт дек 13, 2019 13:11:55
typedef struct
{
__IO uint32_t BCR1;
__IO uint32_t BTR1;
__IO uint32_t BCR2;
__IO uint32_t BTR2;
__IO uint32_t BCR3;
__IO uint32_t BTR3;
__IO uint32_t BCR4;
__IO uint32_t BTR4;
} MY_FSMC_Bank1_TypeDef;
#define MY_FSMC_Bank1 ((MY_FSMC_Bank1_TypeDef *) FSMC_Bank1_R_BASE)
MY_FSMC_Bank1->BCR1 = ...;
MY_FSMC_Bank1->BTR1 = ...;
Пт дек 13, 2019 13:37:37
Пт дек 13, 2019 14:35:19
Пт дек 13, 2019 21:10:41
Пт дек 13, 2019 23:26:42
Пт дек 13, 2019 23:56:14
Сб дек 14, 2019 09:29:02
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();
}
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;
}
Сб дек 14, 2019 09:31:40
(LCTDef *)0x60000000->RAM
Сб дек 14, 2019 09:46:59
void WriteData(uint8_t Command)
{
((LCTDef *)(uint32_t)(0x60000000 | 0x00000000))->RAM = Command;//LCD_IO_WriteData(Parameters[i]);
//__DSB();
}
WriteData(RGBCode); // задаем цвет
#define FMC_BANK1 ((LCTDef *)(uint32_t)(0x60000000 | 0x00000000))
static void FMC_BANK1_WriteData(uint16_t Data)
{
/* Write 16-bit Reg */
FMC_BANK1->RAM = Data;
__DSB();
}
void LCD_IO_WriteData(uint16_t RegValue)
{
/* Write 16-bit Reg */
FMC_BANK1_WriteData(RegValue);
}
LCD_IO_WriteData(RGBCode); //выбираем цвет
Сб дек 14, 2019 09:48:03