找到原因了,我的主函数为:
int main(void)
{
BSP_Init();
OSInit();
OSTaskCreate(Task_Start,(void*)0,&STARTUP_Task_Stk[TASK_STARTUP_STK_SIZE-1],TASK_STARTUP_PRIO);
OSStart();
return 0;
}
在BSP_Init()中
void BSP_Init(void)
{
SystemInit();//配置系统时钟为72MHz,APB1时钟为36MHz,APB2时钟为72MHz
SysTick_Init();//初始化Systick定时器
ili9320_Initializtion();
GUI_Init();//ucgui初始化
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_SPI1,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);
}
由于添加了许多外设时钟开启和初始化语句,导致开机彩屏刷新速度过慢,我把
ili9320_Initializtion();
GUI_Init();//ucgui初始化
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_SPI1,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2|RCC_APB1Periph_TIM3,ENABLE);
这些命令新建了一个任务,放到该任务中,更改后的BSP.c为:
void BSP_Init(void)
{
SystemInit();//配置系统时钟为72MHz,APB1时钟为36MHz,APB2时钟为72MHz
SysTick_Init();//初始化Systick定时器
}
重新编译下载到板子上,彩屏刷新正常.
|