FSMC位宽由16位变为8位地址设置求解

2019-12-12 18:23发布

用STM32F103VCT6,原来用16位的FSMC用得好好的,但为了省一点IO,设为8位却麻烦了。
原来的16位配置如下:
#define Bank1_LCD_D    ((u32)(0x60020000))    //Disp Data ADDR
#define Bank1_LCD_C    ((u32)(0x60000000))           //Disp Reg ADDR
变为8位后,查资料好像右移一位就行(当然这个地方FSMC_MemoryDataWidth_8b也相应设置为8位)
#define Bank1_LCD_D    ((u32)(0x60010000))    //Disp Data ADDR
#define Bank1_LCD_C    ((u32)(0x60000000))           //Disp Reg ADDR
现在LCD只是初始化成功,但是写数据什么的还是不行,应该是上面的基址什么的还有问题,请问那位坛友遇到过?
用的是Bank1,RS接A16
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
TANG2016
2019-12-13 09:54
本帖最后由 TANG2016 于 2019-3-8 17:34 编辑

你好STM32F103VCT6,连接8位的数据MCU和LCD的原理图可以看下吗
LCD_CS——88_PD7_FSMC_NE1
LCD_RS——58_PD11_FSMC_A16
LCD_WR——86_PD5_FSMC_NWE
LCD_RD——85_PD4_FSMC_NOE
LCD_DB0——61_PD14_FSMC_D0
LCD_DB1——62_PD15_FSMC_D1
LCD_DB2——81_PD0_FSMC_D2
LCD_DB3——82_PD1_FSMC_D3
LCD_DB4——38_PE7_FSMC_D4
LCD_DB5——39_PE8_FSMC_D5
LCD_DB6——40_PE9_FSMC_D6
LCD_DB7——41_PE10_FSMC_D7
这样对吗

一周热门 更多>