stm32f4xx tft-fsmc-addr定义请教

2019-07-21 05:24发布

我看到有些TFT屏的FSMC的定义: #define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE)) #define LCD             ((LCD_TypeDef *) LCD_BASE)



但是有些又不是上面的这个地址,请问这个地址是不是只要定义在bank1里面的任意地址都可以还是有什么其他的依据来定义的 ????????????


有的也定义为: #define LCD_DAT        ((u32)(0x6C000000)) #define LCD_CMD         ((u32)(0x60020000))

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
hpdell
2019-07-22 08:02

看来搞不懂的大有人在哦。。。。。。。。。。。。。。。。。。

我现在搞清楚是怎么回事了,具体说明如下:

RS连到a10 偏移地址是  10 + 1 + 1  = 12bit   【1000 0000 0000  】
                                                 = 0x00000800  | bankx-addr(x是BANK的那个块的基址)

RS连到a16 偏移地址是 16 + 1 + 1 = 18bit   【10 0000 0000 0000 0000 】                                            
                                                = 0x00020000  | bankx-addr(x是BANK的那个块的基址)

SR连到a23 偏移地址是 23 + 1 + 1 = 25bit   【1 0000 0000 0000 0000 0000 0000】
                                               = 0x01000000 | bankx-addr(x是BANK的那个块的基址)

第一个加1,是因为FSMC的16位地址要对应HADDR的16位地址
后一个加1,是因为数据要左移一位

---------------------------------------------------------------------------------------------------------------------------------------------------
原子大哥的是右移一位
右移一位来计算的(如果是右移,则后一个1是不用加的)如下
RS连接到A10 偏移地址是10+1 = 11111111110 = 0X7FE , 其他AXX的偏移地址如果是右移一位,则以次类推即可。
---------------------------------------------------------------------------------------------------------------------------------------------------

按照此方法,可以试一试看是否有效?????????????
不管是左移还是右移,他们取的参考物不同,但是最终的结果都是一样的(都能够驱动TFT屏)。
---------------------------------------------------------------------------------------------------------------------------------------------------

也可以参考下面关于TFT-FSMC的介绍:
http://wenku.baidu.com/view/63a5c940a8956bec0975e35a.html

一周热门 更多>