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条回答
小徐
1楼-- · 2019-12-12 21:43
汇编

8位strb/ldrb指令
16位strh/ldrh指令
32位str/ldr指令
tiky
2楼-- · 2019-12-12 22:51
表示完全看不明楼上汇编的东西
小徐
3楼-- · 2019-12-13 03:42
 精彩回答 2  元偷偷看……
tiky
4楼-- · 2019-12-13 08:50
感谢你的热心回复,那个高分屏你要就给你优惠20元吧
那个程序我有空再测试一下
TANG2016
5楼-- · 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
这样对吗

一周热门 更多>