STM32Cubmx FreeRTOS Timer

一、Cubemx 配置

和事件组一样

时钟配置,f103c8t6标准板子只有高速,低速可以不用

 

打开板载led

 usart1配置 选择异步,其他默认

freertos配置,版本选择v2,v1没有事件相关函数

 生成工程

 

二、Timer

打开生成的FreeRTOS项目的主任务文件(通常是FreeRTOSConfig.h)。

在文件中启用configUSE_TIMERS宏,确保FreeRTOS定时器功能被启用。

    freertos.c

 重定向 和 头文件   

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "stdio.h"
#include "usart.h"
#include "timers.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

int fputc(int ch,FILE *f)
{
    HAL_UART_Transmit(&huart1,(uint8_t*)&ch,1,0xFFFF);
    return ch;
}

/* USER CODE END PTD */

定义句柄和回调函数 

/* Private function prototypes -----------------------------------------------*/
/* USER CODE BEGIN FunctionPrototypes */

// 定时器句柄
TimerHandle_t myTimer;

// 定时器回调函数
void vTimerCallback(TimerHandle_t pxTimer) {
    // 定时器到期时执行的代码
    printf("Timer expired!\n");
}
/* USER CODE END FunctionPrototypes */
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void *argument)
{
  /* USER CODE BEGIN StartDefaultTask */
  /* Infinite loop */
	// 创建定时器
    myTimer = xTimerCreate(
        "MyTimer",           // 定时器名称
        pdMS_TO_TICKS(1000),  // 定时器周期(以毫秒为单位)
        pdTRUE,              // 自动重新加载(pdTRUE)或一次性(pdFALSE)定时器
        0,                   // 定时器 ID(在此示例中未使用)
        vTimerCallback       // 定时器回调函数
    );
	if (myTimer == NULL) {
    // 定时器创建失败
				printf("err . . .\r\n");
		}					
    // 启动定时器
    xTimerStart(myTimer, 0);
		for(;;){
			 HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
			 osDelay(2000);
    }  

  /* USER CODE END StartDefaultTask */
}

任务二闪烁小灯 

void StartTask02(void *argument)
{
  /* USER CODE BEGIN StartTask02 */
  /* Infinite loop */
  for(;;)
  {
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);// open led 1s
    osDelay(1000);
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);// close led 1s
    osDelay(1000);
  }
  /* USER CODE END StartTask02 */
}

运行效果

链接: https://pan.baidu.com/s/1FrwdtUZu89l6BrQ3WnhcNw?pwd=7jtr 提取码: 7jtr 

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chem4111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值