【正点原子STM32F767的FreeRTOS移植】

最近我在学习正点原子STM32F767的FreeRTOS移植过程中碰到了delay.c文件设置出错的问题,现已解决,故发出来做个记录,也方便碰到同样问题的XDM借鉴。

#include "delay.h"
#include "FreeRTOS.h"
#include "task.h"

extern void xPortSysTickHandler(void);
static u8  fac_us=0;							//us延时倍乘数			   
static u32 fac_ms=0;
//systick 中断服务函数,使用 OS 时用到
void SysTick_Handler(void)
{
if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系统已经运行
{
	xPortSysTickHandler();
}
HAL_IncTick();
}	   
//初始化延时函数
//当使用 FreeRTOS 的时候,此函数会初始化 FreeRTOS 的时钟节拍
//SYSTICK 的时钟固定为 AHB 时钟
//SYSCLK:系统时钟频率
void delay_init(u8 SYSCLK)
{
	u32 reload;
	//SysTick 频率为 HCLK
	HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
	fac_us=SYSCLK; //不论是否使用 OS,fac_us 都需要使用
	reload=SYSCLK; //每秒钟的计数次数 单位为 K
	reload*=1000000/configTICK_RATE_HZ; //根据 configTICK_RATE_HZ 设定溢出时间
	//reload 为 24 位寄存器,最大值:16777216,
	//在 180M 下,约合 0.745s 左右
	fac_ms=1000/configTICK_RATE_HZ; //代表 OS 可以延时的最少单位
	SysTick->CTRL|&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值