Stm32CubeMx freertos 基本运用

一、选择芯片类型并配置时钟

当前选择是stm32f103zet6,配置RCC、SYS,配置时钟树为72M。使用freertos时推荐采用硬件定时器作为时钟源而不是Systick。

Stm32CubeMx freertos 基本运用_第1张图片

二、使能并配置freeos

1、使能freertos:

创建任务,分别确认任务名称、优先级、栈大小、任务入口函数,任务函数类型、传参,内存分配方式。函数类型选择default即可,内存分配默认为动态分配,其它看(任务)函数需要自行定义。

Stm32CubeMx freertos 基本运用_第2张图片

2、软件定时器、信号量及互斥锁的使用。

先使能定时器,后添加定时器,依次确认定时器名称、回调函数、类型(单次/周期),其它参数默认。

Stm32CubeMx freertos 基本运用_第3张图片

Stm32CubeMx freertos 基本运用_第4张图片

3、添加互斥锁/递归互斥锁/二值信号量/计数信号量等(以添加互斥锁为例),确认互斥锁名字即可,其它参数默认。

Stm32CubeMx freertos 基本运用_第5张图片

4、注意,FreeRtos Heap Usage中展示了当前配置所占用资源,若资源不足报错则在Config parameter中配置各资源分配。

5、生成代码

6、在代码中只需添加以下代码即可,若需要printf函数才需添加fputc函数

osTimerStart(osTimerHandle,1000);	//启动定时器,周期1000ms

osMutexWait(numMutexHandle,0xFFFF);    //等待互斥信号量
//printf("StartTaskEntry\r\n");
osMutexRelease(numMutexHandle);        //释放互斥信号量


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

 

你可能感兴趣的:(Stm32CubeMx freertos 基本运用)