|
我用stm32f103vet和RA8875做的板子,RS连接的是A16,
我这样配置的地址
#define RA8875_BASE ((uint32_t)0x60000000)
#define RA8875_REG *(__IO uint16_t *)(RA8875_BASE + 0x40000) //command,RS A16
#define RA8875_RAM *(__IO uint16_t *)(RA8875_BASE ) //data
程序运行到初始化那个BTE_Wait()一直死在那个循环里。读到得ID是0x75;
现在不知道什么问题了,就是白色的屏幕,清屏的颜色都没有
还有我测得PCLK = 25MHZ,HSYNC = VSYNC = 694.4KHZ。帮分析一下哪儿出了问题
今天终于让它显示字符串了,改动一些地方,
#define RA8875_REG *(__IO uint16_t *)(RA8875_BASE + 0x20000) //command,RS A16
还有HSYNC = 694KHZ,VSYNC = 178KHZ左右,开始这两个线好像有些短路。
但是BTE_Wait()还是死在那儿,我看到读出的值为0XC0,bit7和bit6都为高,即内存读写和BTE都处于忙碌状态,怎么回事呢,我测
NWAIT引脚一直为3.3v左右,读写过程居然一直没有变化,不知道哪儿出问题了,继续寻找中.
现在发现读状态的时候,如果单步调试和全速调试时候读出的值居然不一样,单步的时候读出0x00,全速的时候读出0xC0;全速就会死在那个while()循环里。
准备多加些延时试试。如果我用例程里面的while((RA8875_ReadStatus() & 0x40) == 0x40),不会死在这里。但是我多用一个value = RA8875_ReadStatus() ;
while((value & 0x40) == 0x40)就会死在这里,因为value的值为0XC0了,除非单步运行。求助中 |
|