STM32Cubmx FreeRTOS Timer

简介: 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

目录
相关文章
|
4月前
|
JSON 数据可视化 物联网
基于STM32和FreeRTOS的实时天气系统设计与实现【免费开源】
随着物联网(IoT)技术的发展,实时数据监测系统逐渐成为日常生活和工业环境中不可或缺的组成部分。其中,气象监测系统不仅可以提供温度、湿度、天气状况等信息,还可以通过数据分析为农业、城市管理和个人生活提供智能化建议。本项目以STM32F407为核心控制器,结合FreeRTOS实时操作系统和ESP8266 Wi-Fi模块,实现一套高可靠、实时更新的智能气象监测系统。同时,系统集成了计时功能,通过串口屏将实时数据可视化展示,为用户提供直观的操作体验。
基于STM32和FreeRTOS的实时天气系统设计与实现【免费开源】
|
4月前
|
传感器 数据采集 物联网
基于STM32和FreeRTOS的智能手环项目设计与实现【免费开源】
随着可穿戴设备的普及,智能手环逐渐成为健康管理、运动监测和生活便捷的重要工具。本项目旨在设计一款基于STM32微控制器和FreeRTOS实时操作系统的智能手环,具备心率监测、运动计步、睡眠分析以及蓝牙通信功能。通过FreeRTOS实现多任务调度,提高系统响应效率和资源利用率,同时保证低功耗设计,延长手环续航。
基于STM32和FreeRTOS的智能手环项目设计与实现【免费开源】
|
消息中间件 Web App开发 API
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
FreeRTOS介绍 和 将FreeRTOS移植到STM32F103C8T6
|
中间件 编译器 调度
STM32cubemx对FreeRTOS的适配(工程模板配置)
STM32cubemx对FreeRTOS的适配(工程模板配置)
1377 0
STM32CubeMX FreeRTOS 互斥锁
STM32CubeMX FreeRTOS 互斥锁
591 12
STM32CubeMX FreeRTOS 任务的挂起和恢复
STM32CubeMX FreeRTOS 任务的挂起和恢复
457 12
STM32Cubemx FreeRTOS Event
STM32Cubemx FreeRTOS Event
291 11
|
消息中间件
STM32CubeMX FreeRTOS 消息队列
STM32CubeMX FreeRTOS 消息队列
1068 11
STM32CubeMX FreeRTOS点亮LED
STM32CubeMX FreeRTOS点亮LED
364 10
|
编解码
STM32CubeMX FreeRTOS u8g2图片菜单制作
STM32CubeMX FreeRTOS u8g2图片菜单制作
747 8