你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32G0学习手册——FreeRTOS软件定时器

[复制链接]
STMCU小助手 发布时间:2021-11-9 17:00
1.创建好带有printf-stdarg.c的FreeRTOS的工程

2.修改main.c文件

  1. /* USER CODE BEGIN Includes */

  2. #include "FreeRTOS.h"
  3. #include "task.h"
  4. #include "timers.h"
  5. #include <stdio.h>
  6. #include <string.h>

  7. /* USER CODE END Includes */
  8. /* USER CODE BEGIN PV */
  9. static TaskHandle_t AppTask_Handle = NULL;
  10. static TimerHandle_t  Timer1_Handle = NULL;

  11. extern int f_printf(const char *format, ...);

  12. /* USER CODE END PV */

  13. /* Private function prototypes -----------------------------------------------*/
  14. void SystemClock_Config(void);
  15. /* USER CODE BEGIN PFP */

  16. static void AppTaskCreate(void);
  17. static void TimerCallback(void);

  18. /* USER CODE END PFP */

  19. int main(void)
  20. {
  21.   /*
  22.    *
  23.    */

  24.   /* USER CODE BEGIN WHILE */
  25.   UBaseType_t xReturn = pdFALSE;

  26.         xReturn = xTaskCreate((TaskFunction_t)AppTaskCreate,
  27.                         (const char *)  "APPTASKCREATE",
  28.                         (uint16_t)      128,
  29.                         (void *)        NULL,
  30.                         (UBaseType_t)   1,
  31.                         (TaskHandle_t *)&AppTask_Handle);

  32.   if(xReturn != NULL)
  33.         {
  34.                 f_printf("Task Create PASS.\r\n");
  35.                 vTaskStartScheduler();
  36.         }
  37.         
  38.         
  39.   while (1)
  40.   {
  41.     /* USER CODE END WHILE */

  42.     /* USER CODE BEGIN 3 */
  43.   }
  44.   /* USER CODE END 3 */
  45. }


  46. /* USER CODE BEGIN 4 */
  47. static void AppTaskCreate(void)
  48. {
  49.         BaseType_t xReturn = pdFALSE;
  50.         
  51.         Timer1_Handle = xTimerCreate( (const char *) "TIMER1",(TickType_t)1000,
  52.                           pdTRUE, (void*) 1,(TimerCallbackFunction_t)TimerCallback);
  53.         
  54.         if( Timer1_Handle !=NULL)
  55.                 f_printf("Timer1 Create PASS.\r\n");
  56.         
  57.         xReturn = xTimerStart(Timer1_Handle,0);
  58.         
  59.         if(xReturn != pdFALSE)
  60.         {
  61.                 f_printf("Timer1 START.\r\n");
  62.                 vTaskDelete(AppTask_Handle);
  63.         }
  64.         
  65. }
  66. static void TimerCallback(void)
  67. {
  68.         HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);

  69. }
  70. /* USER CODE END 4 */
复制代码



收藏 评论0 发布时间:2021-11-9 17:00

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版