本帖最后由 TECHWELL 于 2012-12-31 21:52 编辑
用STM32F207(FSMC)+RA8875的画线/矩形2D功能时,RA8875有时候一直输出低电平的WAIT信号,造成程序死等待,
程序停留在while(...)处:
Text_color(color); // 设定颜色
Geometric_Coordinate(x,x+width-1,y,y); // 设置水平线起始点
WriteCommand(0x90);//写0x90寄存器
WriteData(0x80); //向0x90寄存器写数据,RA8875开始画水平线...
while(!(GPIOA->IDR & GPIO_Pin_7 ));//等待RA8875空闲,PA7,"死等待"时PA7上的确是低电平!
奇怪的是,只有在画线/矩形时才产生这个问题.我能保证,我给定的画线/矩形的相关参数(坐标及颜色之类的)是正确无误的.
大批量写数据给RA8875的过程中,却从未出现过此类"死等待"的问题;
怀疑PA7端口有问题,改用下边的办法去等待RA8875"操作完成"(不判PA7,而是判状态寄存器STSR.bit7):
while(ReadCOMM() & 0x80); //读状态寄存器STSR,判断其bit7; 画线/矩形时依然可能产生"死等待"的问题.
"死等待"时STSR的确为0X80,这说明RA8875正是因为"内存读取/写入忙碌"而产生了WAIT信号.
RA8875它老人家,为何而忙碌呢?
关闭按键扫描,问题依旧...
困扰我好几天了...
没出路了...
有谁碰到过此类问题吗?
请赐教...
若能如愿,不胜感激!
我的qq= 396936661 |