关于TFT不显示的问题,求助

2019-10-15 19:10发布

       最近买了几块spi的tft液晶屏,结果程序下载进去之后不显示,找了很久发现了问题,我用的是12m晶振,用8M晶振的板子跑,一切ok,但还换成12M的板子还是不显示,8M改12M方法如下:
第一步,打开stm32f10x.h,将
#define HSE_VALUE    ((uint32_t)8000000)  修改为:
#define HSE_VALUE    ((uint32_t)12000000)  
     第二步,打开system_stm32f10x.c,修改PLL参数,将
      
     RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |                                         RCC_CFGR_PLLMULL));
     RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);  修改为:   
      
     RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE |                                         RCC_CFGR_PLLMULL));
     RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);      至此,原文件已经修改完成,如果你想将主频修改至其他频率,请自行修改。但是,到现在,如果您直接编译调试的话,就会出现上文所说的USART的波特率不正确,Systick走时不准等问题,原因就是我们需要进行第三部的修改,这个修改不是在原文件中,而是在编译环境中。我们已Keil MDK为例说明。
     第三步,打开你已经建立的STM32工程,选择Projects-〉Options for target ***,找到Target标签,你会发现,外接的晶振默认还是8MHz,我们将外接的晶振参数修改为12MHz,确定保存,再编译,调试,你就会发现,所有的参数都回归的正常轨道,设置波特率为9600,它也不会跑到14400,设置Systick为1ms中断,它不会1.5ms中断。

     本人用示波器查看我的12M晶振跑的很稳定,延迟很精确,串口收发数据正常就是不知道还有什么地方影响TFT,spi软件模拟还是硬件都试了用12M晶振的板子就是不显示
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。