欢迎光临
我们一直在努力

freertos移植stm32 STM32F103ZET(基于秉火开发板)+Cubemx(F1 V1.60库)+UCOSIII+STemWin+FreeRTOS 移植

freertos 移植_freertos源码详解_freertos移植stm32

首先说明下开发条件:

1、开发板:秉火霸道,STM32F103ZET

2、软件:Cubemx V4.23(F1 V1.60库)

UCOSIII 3.03

STemWin 5.32

FreeRTOS 9.00

移植中注意的问题:

1、裸机移植STemWin时,TFT液晶屏驱动函数所在文件不能是“LCD.C”和“LCD.h”(不区分大小写),这一步比较重要,因为STemWin的库中有一个“LCD.h”的头文件!

在LCDConf_FlexColor_Template.c文件中的void LCD_X_Config(void)函数里面的最后一句话为:

GUIDRV_FlexColor_SetFunc(pDevice,&PortAPI,GUIDRV_FLEXCOLOR_F66708, GUIDRV_FLEXCOLOR_M16C0B16);

我们需要修改的是GUIDRV_FLEXCOLOR_F66708这个参数。GUIDRV_FLEXCOLOR_F66708 这个参数的修改要根据你的TFT屏所使用的

驱动芯片,如我的TFT使用的驱动芯片是“ILI9325”,所以GUIDRV_FLEXCOLOR_F66708。freertos移植stm32freertos移植stm32如果你的是“ILI9341”,那么就改成GUIDRV_FLEXCOLOR_F66709。如果是其它型号的驱动芯片则需要查询emWin5.32的用户手册然后进行修改。emWin5.32用户手册

freertos源码详解_freertos移植stm32_freertos 移植

可在“STemWinLibrary532”文件夹中的“STemWinLibrary532\Documentation”目录下找到,该手册是一份PDF文档,打开之后

点开查找功能,输入“GUIDRV_FLEXCOLOR_F66709”便可找到,一般在1002页,具体看下图。

捕获.JPG

裸机移植使用GUI_X.c,带操作系统使用GUI_X_OS.c!

2、移植UCOS III应该注意的问题:

不能使用HAL_Delay(),因为这与操作系统的时基两者之间会冲突!

自己的函数初始化最好放在BSP函数里面(起始任务AppTaskStart),不要放在建立任务(OSTaskCreate)之前!

3、UCOS III+STemWin移植

必须使用GUI_X_OS.c,修改int GUI_X_GetTime(void)函数为:

int GUI_X_GetTime(void)

{

OS_ERR err;

freertos源码详解_freertos 移植_freertos移植stm32

return OSTimeGet(&err);

}

这样就可以用GUI_Delay()与OSTimeDly ( )就都可以使用,不然就会出现死机情况!不能使用HAL_Delay(),因为这与操作系统的时基两者之间会冲突!当然你也可以自己设计延时函数,但是这样的延时函数只有延时作用,不会发起任务调度!

4、FreeRTOS移植相对来说不会出现大问题,而且HAl_Delay与osDelay也可以共用!可见Cubemx的好处!

下面给出设置需要注意的地方。

时基如果选择Systick会有警告,经过实测是没有问题的,当然了你也可以选择其他时基,比如TIM2。

任务的建立,名字和符号,又一次可见Cubemx的强大!只需要在建立好的任务里面实现自己的函数即可,省去复杂的移植过程!

并且TreeRTOS+STemWin移植的时候,GUI_X_OS.c文件一点不需要修改,因为ST官方现在是主推使用FreeRTos的,因为免费啊!可见免费的力量!

首先说明下开发条件:1、开发板:秉火霸道,STM32F103ZET2、软件:Cubemx V4.23(F1 V1.60库)&nb…

未经允许不得转载:今日干货 » freertos移植stm32 STM32F103ZET(基于秉火开发板)+Cubemx(F1 V1.60库)+UCOSIII+STemWin+FreeRTOS 移植
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址