|
发表于 2018-1-13 11:27:43
|
显示全部楼层
这种类似的问题我也遇到过.使用STM32F103,串口和LCD(FSMC)显示程序单独使用没什么问题,都正常,只要初始化串口后,屏幕就显示不正常.然后一直代码,找问题,没什么效果,一次偶然的机会,我把串口初始化放到液晶屏初始化后面.一切OK,到现在我都还是不知道为什么,后面的程序我都是先初始化FSMC后再初始化串口.后面使用的SPI3接口也遇到同样的问题.
void bsp_Init(void)
{
/*
由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。
启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。
系统时钟缺省配置为72MHz,如果需要更改,可以修改 system_stm32f10x.c 文件
*/
/* 使能CRC校验, 用于开启STemWin的使用 */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC, ENABLE);
/* 优先级分组设置为4,可配置0-15级抢占式优先级,0级子优先级,即不存在子优先级。*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
bsp_InitDWT(); /* 初始化数据观察点与跟踪(DWT)模块*/
bsp_InitLed(); /* 初始LED指示灯端口 */
bsp_InitKey(); /* 初始化按键 */
BEEP_InitHard(); /* 初始化蜂鸣器硬件*/
bsp_InitSPIBus(); /* 配置SPI总线 ,主要配置SPI2接口,这个接口是SPIflash与TSC2046共用的*/
bsp_InitSFlash(); /* 初始化SPI flash(GBK字库)*/
// SPI_FLASH_Test(); /* SPI FLASH读写测试试验*/
LCD_InitHard(); /* 初始化显示器硬件*/
bsp_InitUart(); /* 初始化串口 注意!!!要放在液晶屏初始化前面会死机*/
bsp_InitSFRAM(); /* 初始化铁电存储器(保存参数)注意!!!要放在液晶屏初始化前面会死机*/
// bsp_InitI2C(); /* 配置I2C总线 */
TOUCH_InitHard(); /* 初始化触摸屏*/
LCD_SetBackLight(BRIGHT_DEFAULT); /* 打开液晶屏背光*/
} |
|