FreeRTOS

FreeRTOS

CubeMX生成的Tickless模式异常

回复

问题困惑笑亦无涯 回复了问题 • 1 人关注 • 1 个回复 • 294 次浏览 • 2019-04-09 09:29 • 来自相关话题

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

经验分享开始现在-s 发表了文章 • 5 个评论 • 2866 次浏览 • 2017-12-11 13:26 • 来自相关话题

首先说明下开发条件:1、开发板:秉火霸道,STM32F103ZET2、软件: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。如果你的是“ILI9341”,那么就改成GUIDRV_FLEXCOLOR_F66709。如果是其它型号的驱动芯片则需要查询emWin5.32的用户手册然后进行修改。emWin5.32用户手册    可在“STemWinLibrary532”文件夹中的“STemWinLibrary532\Documentation”目录下找到,该手册是一份PDF文档,打开之后    点开查找功能,输入“GUIDRV_FLEXCOLOR_F66709”便可找到,一般在1002页,具体看下图。    裸机移植使用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;    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的,因为免费啊!可见免费的力量!    5、联系方式:微信Startingray,本人准备将cubemx的小bug解决的过程记录下来,也是给爱好者一点启示,欢迎微信和我沟通,共同进步!个人觉得Cubemx是未来的发展方向,可以使我们避免很多小错误,但是由于现在软件版本之间的兼容性,加上不同版本库之间存在的bug,还是需要我们在使用时时刻保持警惕! 查看全部

首先说明下开发条件:

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。如果你的是“ILI9341”,那么就改成GUIDRV_FLEXCOLOR_F66709。如果是其它型号的驱动芯片则需要查询emWin5.32的用户手册然后进行修改。emWin5.32用户手册

    可在“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;

    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的,因为免费啊!可见免费的力量!


    5、联系方式:微信Startingray,本人准备将cubemx的小bug解决的过程记录下来,也是给爱好者一点启示,欢迎微信和我沟通,共同进步!个人觉得Cubemx是未来的发展方向,可以使我们避免很多小错误,但是由于现在软件版本之间的兼容性,加上不同版本库之间存在的bug,还是需要我们在使用时时刻保持警惕!

一直Freertos以后 HAL_Delay 无法使用

经验分享寂寞,点燃一支烟 回复了问题 • 2 人关注 • 1 个回复 • 3317 次浏览 • 2017-11-30 14:32 • 来自相关话题

STM32cubemx生成freertos的API说明哪里有?

问题困惑admin 回复了问题 • 5 人关注 • 4 个回复 • 3340 次浏览 • 2017-08-26 12:09 • 来自相关话题

CubeMX+freertos+2个DS18B20测温

经验分享wide(BG7RGT) 发表了文章 • 4 个评论 • 2110 次浏览 • 2017-05-24 14:32 • 来自相关话题

硬件: STM32F103开发板(MIN);独立两路 18B20软件:  CubeMX最新版本;MDK 最新版本,IAR 7.8关键: 单总线的时序要求比较严格,所以根据系统时钟计算好微秒函数, CubeMX带的 freeRTOS已经重新封装过,非常好用,所以任务都在 freeROTS.c中,自动生成的 main函数一点不用动,文档请看下面百度云链接,里面有keil与 IAR两个版本,包括CubeMX配置文件http://pan.baidu.com/s/1nv2X3dv  密码:q81t 查看全部

硬件: STM32F103开发板(MIN);独立两路 18B20

软件:  CubeMX最新版本;MDK 最新版本,IAR 7.8

关键: 单总线的时序要求比较严格,所以根据系统时钟计算好微秒函数, CubeMX带的 freeRTOS已经重新封装过,非常好用,所以任务都在 freeROTS.c中,自动生成的 main函数一点不用动,文档请看下面百度云链接,里面有keil与 IAR两个版本,包括CubeMX配置文件

http://pan.baidu.com/s/1nv2X3dv  密码:q81t

关于freertos调试

问题困惑日日夜夜 回复了问题 • 3 人关注 • 2 个回复 • 2815 次浏览 • 2015-02-06 15:23 • 来自相关话题

关于FreeRTOS的设置分析和官方例程实验

回复

软件教程admin 发起了问题 • 5 人关注 • 0 个回复 • 3934 次浏览 • 2014-12-31 17:17 • 来自相关话题

CubeMX生成的Tickless模式异常

回复

问题困惑笑亦无涯 回复了问题 • 1 人关注 • 1 个回复 • 294 次浏览 • 2019-04-09 09:29 • 来自相关话题

一直Freertos以后 HAL_Delay 无法使用

回复

经验分享寂寞,点燃一支烟 回复了问题 • 2 人关注 • 1 个回复 • 3317 次浏览 • 2017-11-30 14:32 • 来自相关话题

STM32cubemx生成freertos的API说明哪里有?

回复

问题困惑admin 回复了问题 • 5 人关注 • 4 个回复 • 3340 次浏览 • 2017-08-26 12:09 • 来自相关话题

关于freertos调试

回复

问题困惑日日夜夜 回复了问题 • 3 人关注 • 2 个回复 • 2815 次浏览 • 2015-02-06 15:23 • 来自相关话题

关于FreeRTOS的设置分析和官方例程实验

回复

软件教程admin 发起了问题 • 5 人关注 • 0 个回复 • 3934 次浏览 • 2014-12-31 17:17 • 来自相关话题

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

经验分享开始现在-s 发表了文章 • 5 个评论 • 2866 次浏览 • 2017-12-11 13:26 • 来自相关话题

首先说明下开发条件:1、开发板:秉火霸道,STM32F103ZET2、软件: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。如果你的是“ILI9341”,那么就改成GUIDRV_FLEXCOLOR_F66709。如果是其它型号的驱动芯片则需要查询emWin5.32的用户手册然后进行修改。emWin5.32用户手册    可在“STemWinLibrary532”文件夹中的“STemWinLibrary532\Documentation”目录下找到,该手册是一份PDF文档,打开之后    点开查找功能,输入“GUIDRV_FLEXCOLOR_F66709”便可找到,一般在1002页,具体看下图。    裸机移植使用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;    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的,因为免费啊!可见免费的力量!    5、联系方式:微信Startingray,本人准备将cubemx的小bug解决的过程记录下来,也是给爱好者一点启示,欢迎微信和我沟通,共同进步!个人觉得Cubemx是未来的发展方向,可以使我们避免很多小错误,但是由于现在软件版本之间的兼容性,加上不同版本库之间存在的bug,还是需要我们在使用时时刻保持警惕! 查看全部

首先说明下开发条件:

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。如果你的是“ILI9341”,那么就改成GUIDRV_FLEXCOLOR_F66709。如果是其它型号的驱动芯片则需要查询emWin5.32的用户手册然后进行修改。emWin5.32用户手册

    可在“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;

    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的,因为免费啊!可见免费的力量!


    5、联系方式:微信Startingray,本人准备将cubemx的小bug解决的过程记录下来,也是给爱好者一点启示,欢迎微信和我沟通,共同进步!个人觉得Cubemx是未来的发展方向,可以使我们避免很多小错误,但是由于现在软件版本之间的兼容性,加上不同版本库之间存在的bug,还是需要我们在使用时时刻保持警惕!

CubeMX+freertos+2个DS18B20测温

经验分享wide(BG7RGT) 发表了文章 • 4 个评论 • 2110 次浏览 • 2017-05-24 14:32 • 来自相关话题

硬件: STM32F103开发板(MIN);独立两路 18B20软件:  CubeMX最新版本;MDK 最新版本,IAR 7.8关键: 单总线的时序要求比较严格,所以根据系统时钟计算好微秒函数, CubeMX带的 freeRTOS已经重新封装过,非常好用,所以任务都在 freeROTS.c中,自动生成的 main函数一点不用动,文档请看下面百度云链接,里面有keil与 IAR两个版本,包括CubeMX配置文件http://pan.baidu.com/s/1nv2X3dv  密码:q81t 查看全部

硬件: STM32F103开发板(MIN);独立两路 18B20

软件:  CubeMX最新版本;MDK 最新版本,IAR 7.8

关键: 单总线的时序要求比较严格,所以根据系统时钟计算好微秒函数, CubeMX带的 freeRTOS已经重新封装过,非常好用,所以任务都在 freeROTS.c中,自动生成的 main函数一点不用动,文档请看下面百度云链接,里面有keil与 IAR两个版本,包括CubeMX配置文件

http://pan.baidu.com/s/1nv2X3dv  密码:q81t