这几天用stm32f103做彩屏的应用,用FSMC驱动,彩屏的驱动程序是用的现成的,驱动芯片是ssd1298。
我自己定义了这样一个结构体变量
typedef struct{
ButtonArea ButtonCo;
u8 Text[20];
}Button;
其中ButtonArea也是一个结构体,定义了按键的坐标,问题在于Text数组,我发现定义的数组大小不同时会出现问题,比如我这里定义了20是可以正常运行的,但是定义成30或40就会出现严重问题,程序卡死,而且我再用ulink下载程序会出现could not stop Cortex-M device的提示,要把板子复位才能烧写,有时还要复位几次。调试发现貌似也不是hardfault,后来单步调试运行到彩屏驱动这里发现了问题。从LCD初始化第一步LCD_WriteReg(0x00, 0x0001);开启内部晶振开始,就cannot access memory了,再往下运行就失去了对芯片的控制,无法停止了。换了屏也没用,应该是FSMC的问题,把这个数组的大小改成20或者开启优化level-3就没问题了,请问大虾这是神马情况??
|