新手上路
- 积分
- 34
- 金钱
- 34
- 注册时间
- 2021-12-10
- 在线时间
- 15 小时
|
1金钱
移植原子哥的FSMC程序,驱动ILI9488,原程序使用的配置如下:
typedef struct
{
uint16_t LCD_REG;
uint16_t LCD_RAM;
} LCD_TypeDef;
//使用NOR/SRAM的 Bank1.sector4,地址位HADDR[27,26]=11 A10作为数据命令区分线
//注意设置时STM32内部会右移一位对其!
#define LCD_BASE ((uint32_t)(0x6C000000 | 0x000007FE)) //使用Bank4,A10地址线
按此配置,可以让TFT正常显示,PCB已经调通。
我的理解是:7FE 为 10个1 1111111111 << 1 = 11111111110
用此方式计算A0的地址,应该是:((uint32_t)(0x6C000000 | 0x00000000)) //使用Bank4,A0地址线
新PCB使用A0地址,但是测量端口输出一直有问题,TFT无法正常显示,跳线到A10,恢复原配置,工作正常
跳线到A13,计算的地址配置为:#define LCD_BASE ((uint32_t)(0x6C000000 | 0x00003FFE))//使用Bank4,A13地址线,同样可以正常工作。
所以,A0地址线对应的地址应该是多少呢?
|
最佳答案
查看完整内容[请看2#楼]
参考这个改一下看看:fsmc中的A10的偏移量的计算:http://www.openedv.com/forum.php?mod=viewthread&tid=27240
|