|
遇到一个纳闷的问题,平台是在V5开发版里完成了初版,效应速度很快!!!
现在将界面移植到F427平台上,LCD和emWin的代码是一模一样的,使用了FreeRTOS,任务里的操作也是一样的.
唯一不一样的是F427平台的FreeRTOS是用Cube生成,V5是按照安富莱开发手册移植的.现在说说问题吧
我一共用两个IO口来查看任务状态和GUI_Delay()的执行情况,如代码
void HMI_Task(void const * argument)
{
/* USER CODE BEGIN HMI_Task */
static uint8_t u8TimeCnt = 0;
static uint8_t u8BuzCnt = 0;
static uint8_t u8KeyPreCnt = 0;
/* Infinite loop */
/* HMI初始化*/
HMI_Init();
//1 ---------起始菜单------------
HMI_CreateStartMenu();
for(;;)
{
//1 ----------------------------2ms扫描矩阵按键----------------------
if(++u8TimeCnt > 20){
u8TimeCnt = 0;
KeyScanf();
DevKey_PreEvent();
}
//1 ---------------------------1ms触摸/蜂鸣器服务-------------------
if(++u8BuzCnt > 10)
{
u8BuzCnt = 0;
if(g_tTP.Enable == 1)
{
TOUCH_Scan();
}
DevBuz_Pro();
}
//GUI延时 重绘所有界面100us (系统节拍100us)
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1,GPIO_PIN_RESET);
GUI_Delay(1);
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_1,GPIO_PIN_SET);
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_0);
}
/* USER CODE END HMI_Task */
}
问题阐述:
1.正常开机,加载完界面,如果没有触摸或控件发送改变,用逻辑分析仪看IO端口波形如下:
2.触摸或者按键进入下一个界面(任意一个或者触碰界面没有控件),就会出现如下波形,刷屏会变慢,有残影
F427平台的emWin代码是和V5开发版上一致的
我把GUI_Delay()换成GUI_Exce()也是一样的效果
我在想,是不是FreeRTOS的影响? |
|