我用的是红牛STM32开发板,芯片是STM32F103ZET6。
自己写了一个液晶屏程序(显示功能+触摸屏功能),
显示控制芯片是SSD1289,用STM32的FSMC进行控制;
触摸控制芯片是XTP2046,用STM32的SPI2进行控制;
通过串口用Flash Loader Demo下载到芯片;
保持开发板不断电,切换到主闪存启动模式,
第一次按复位键,程序停止在初始化SSD1289(液晶显示驱动芯片)函数中;
第二次按复位键,程序完全正常执行,显示功能和触摸屏功能都正常;
*
*
*
第n次按复位键,程序完全正常执行,显示功能和触摸屏功能都正常;
开发板断电,再上电,
程序停止在初始化SSD1289(液晶显示驱动芯片)函数中;
无论怎么弄,程序再也无**常执行,
除非重新下载程序,再按两次复位键,
但同样的,若开发板断电,再上电,程序再也无**常执行,
每次复位后都停止在初始化SSD1289(液晶显示驱动芯片)函数中。
这到底是怎么回事啊,
之前我用STM32单独实现液晶屏的显示功能或是触摸屏功能时没有一点问题,为什么两个功能整到一起就不行了呢?
是因为STM32的FSMC和SPI2一起用有冲突吗?还是只能使用模拟的SPI?
为什么下完程序后要按两次复位键程序才能正常执行呢?????
为什么系统一断电再上电,就再也无**常执行呢???????
是STM32的启动配置有问题?????????????????
还是其它什么原因?????????????????????
我试着降低系统时钟频率,或更改SPI2的时钟极性,等等,就是没弄好,
小弟是菜鸟,刚开始学习STM32,这个问题已经折磨我几天了,希望大侠能指点一二,小弟不胜感激啊! |