Billuncle 发表于 2014-11-18 21:21:26

FSMC的RS(A20)无波形

用STM32F103驱动一块3.5寸屏,设置成FSMC模式,但发现SSD1963没有被驱动成功,通过测试波形发现RS(A20)恒为高电压不会变化,但RW、CS则有信号输出,硬件确认此脚接到PE4上,请问是什么原因:
下面是FSMC设置和发送指令和数据的代码

#define LCD_COMM_ADD                *((u16 *)0x60000000)
#define LCD_DATA_ADD                *((u16 *)0x60200000)
#define LCD_Write16BitIndex(cmd)        {LCD_COMM_ADD = cmd;}
#define LCD_Write16BitData(data)        {LCD_DATA_ADD = data;}       

//FSMC 设置
FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure;
        FSMC_NORSRAMTimingInitTypeDef        p;

p.FSMC_AddressSetupTime = 2;
p.FSMC_AddressHoldTime = 0;
p.FSMC_DataSetupTime = 5;
p.FSMC_BusTurnAroundDuration = 0;
p.FSMC_CLKDivision = 0;
p.FSMC_DataLatency = 0;
p.FSMC_AccessMode = FSMC_AccessMode_B;


FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;
FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_NOR;

FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_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_Disable;
FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;


FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);

//* Enable FSMC Bank1_SRAM Bank */
FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1, ENABLE);

Billuncle 发表于 2014-12-7 14:04:09

已经搞定了,FMSC设置没有问题,是SSD1963设置的延迟时间不够,导致SSD1963不工作。

沐紫 发表于 2014-11-21 16:45:02

帮顶,求大婶
页: [1]
查看完整版本: FSMC的RS(A20)无波形