spectral1989 0 22 февраля, 2013 Опубликовано 22 февраля, 2013 · Жалоба Здравствуйте! завел дисплей на SSD1963 + FSMC, 16 бит. заливка данных в дисплей работает, но почему -то при чтении всегда возвращается последнее записанное число. шина 8080, осциллом смотрю NOE, NWE - там все верно. действую согласно даташиту: #define LCD_REG (*((volatile unsigned short *) 0x60000000)) #define LCD_RAM (*((volatile unsigned short *) 0x60000002)) uint16_t WF70_GetPixel() { WF70_SetArea(0, GetMaxX(), 0, GetMaxY()); LCD_REG = 0x2E; return (LCD_RAM); } void WF70_SetArea(uint16_t s_x,uint16_t e_x,uint16_t s_y,uint16_t e_y) { WF70_WriteCommand(0x2a); //SET page address WF70_WriteData(s_x >> 8); WF70_WriteData(s_x); WF70_WriteData(e_x >> 8); WF70_WriteData(e_x); WF70_WriteCommand(0x2b); //SET column address WF70_WriteData(s_y >> 8); WF70_WriteData(s_y); WF70_WriteData(e_y >> 8); WF70_WriteData(e_y); } настройки FSMC: FSMC_NORSRAMInitTypeDef FSMC_NORSRAMInitStructure; FSMC_NORSRAMTimingInitTypeDef p; /* Enable FSMC clock */ RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC, ENABLE); /*-- FSMC Configuration ------------------------------------------------------*/ p.FSMC_AddressSetupTime = 10; p.FSMC_AddressHoldTime = 0; // not used p.FSMC_DataSetupTime = 15;//4; p.FSMC_BusTurnAroundDuration = 0;//1; p.FSMC_CLKDivision = 0; p.FSMC_DataLatency = 0; p.FSMC_AccessMode = FSMC_AccessMode_A; FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_SRAMx;//FSMC_Bank1_NORSRAM2; FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable; FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b; FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable; FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low; FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable; FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState; FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable; FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable; FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Enable; FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable; FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p; FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p; FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); /*!< Enable FSMC Bank1_SRAM2 Bank */ FSMC_NORSRAMCmd(FSMC_Bank1_SRAMx, ENABLE); подскажите пожалста, в чем проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться