stm32cubemxfreertos的基本配置

FreeRTOS与裸机开发的区别

1. 任务管理

  • FreeRTOS:

    • 提供多任务环境,允许同时运行多个任务。
    • 通过任务调度器管理任务的切换和优先级。
    • 开发者可以定义任务的优先级、堆栈大小等属性。
    • 支持任务间通信(如队列、信号量和互斥锁)来协调任务之间的操作。
  • 裸机开发:

    • 通常只有一个主程序运行,任务切换需要手动实现。
    • 没有内置的任务管理机制,所有操作需由开发者直接控制。
    • 通常需要使用循环(如while循环)来处理多任务需求,或者使用定时器来实现时间片轮转。

2. 实时性

  • FreeRTOS:

    • 设计用于实时应用,具有确定性的任务调度。
    • 可以设置任务的优先级,以确保高优先级任务能及时响应。
  • 裸机开发:

    • 实时性取决于程序的设计,通常缺乏调度机制。
    • 响应时间不够灵活,处理复杂情况时可能会出现延迟。

3. 代码结构

  • FreeRTOS:

    • 代码结构通常较为复杂,涉及多个源文件和头文件。
    • 提供丰富的API,可以大大简化任务管理和资源共享的实现。
  • 裸机开发:

    • 代码相对简单,通常在单一的文件中编写。
    • 所有硬件控制和逻辑实现都由开发者自己管理,灵活性高。

4. 资源管理

  • FreeRTOS:

    • 提供内存管理功能,支持动态内存分配(如使用pvPortMallocvPortFree)。
    • 可以方便地管理和分配各种资源,如任务、信号量、队列等。
  • 裸机开发:

    • 通常需要手动管理内存和资源分配。
    • 开发者需要对内存使用有更深入的理解,避免内存泄漏和冲突。

5. 开发复杂性

  • FreeRTOS:

    • 虽然可以减少管理复杂性的负担,但需要学习和理解RTOS的概念和API。
    • 对于新手,可能需要一定的学习曲线来掌握实时系统的工作原理。
  • 裸机开发:

    • 开发相对简单,但当项目变得复杂时,管理多个任务和资源的难度会增加。
    • 对于初学者来说,容易理解,但不适合复杂应用。

 cubemx的基本配置:

RCC选用外部晶振High Speed Clock (HSE) Crystal/Ceramic Resonator

SYS这里Debug选择Serial Wire选着后可以多次下载,不勾选后续只能下载一次,Timebase Source 选择TIM4。

Clock Configuration将时钟开到最大


 

展开Middleware双击 FREERTOs对于Config parameters的基本配置根据项目需要进行修改,

 Tasks and Queues可以在这添加多项任务

 

下一步配置LED和串口:

 

 选择串口1,Mode选择Asynchronous异步串口通信,波特率设置为115200Bits/s

最后一步就是创建工程

在  usart.c文件下加入下列代码,#include "usart.h"文件下加入#include "stdio.h"

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

 

在freertos.c文件下添加以下代码

void StartTask02(void const * argument)
{
  /* USER CODE BEGIN StartTask02 */
  /* Infinite loop */
  for(;;)
  {
		HAL_GPIO_WritePin (GPIOA,GPIO_PIN_8,GPIO_PIN_SET);
        osDelay(100);
		HAL_GPIO_WritePin (GPIOA,GPIO_PIN_8,GPIO_PIN_RESET);
        osDelay(100);
			
  }
  /* USER CODE END StartTask02 */
}
void StartDefaultTask(void const * argument)
{
  /* USER CODE BEGIN StartDefaultTask */
  /* Infinite loop */
  for(;;)
  {

		printf ("SS\r\n");
		osDelay(100);
  }

在运行代码之前要在魔术棒下勾选Use MicroLlB,不勾选串口不能发送数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值