AI代码解释 // 初始化延时函数//SYSTICK的时钟固定为HCLK时钟的1/8staticuint8_t fac_us=0;voiddelay_init(uint8_tSYSCLK){HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//SysTick 频率为 HCLKfac_us=SYSCLK;//不论是否使用 OS,fac_us 都需要使用} delay_us 函数 这个函数是用来指定us的,其参...
delay_init()函数通常用于初始化延时函数所需的参数和配置。在STM32中,延时函数往往依赖于SysTick定时器...
1) delay_init() /* 初始化延迟函数 * 当使用 OS 的时候,此函数会初始化 OS 的时钟节拍 * SYSTICK 的时钟固定为 AHB 时钟的 1/8 * SYSCLK:系统时钟频率 */ voiddelay_init(u8 SYSCLK) { #ifSYSTEM_SUPPORT_OS//如果需要支持 OS. u32 reload; #endif SysTick->CTRL&=~(1<<2);//SYSTICK 使...
void delay_init() 代码语言:javascript 代码运行次数:0 运行 AI代码解释 voiddelay_init(u8SYSCLK)// 系统时钟频率,和HCLK是一样的{#ifSYSTEM_SUPPORT_OS//ucos相关代码,先跳过u32 reload;#endifSysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);fac_us=SYSCLK/8;//设置频率#ifSYSTEM_SUPPORT_OS//uco...
void delay_init(void){ SysTick->LOAD=9000-1; //装载值设定为9*1000-1=8999 即每ms中断一次 SysTick->CTRL|=3; //开启SYSTICK并允许中断}怎么样,简单吧?你用它替换掉原子的函数,我保证能用。楼下我会详细解释一下.哦,对了,忘记提示一句: 使用库函数编程的同学,也是一样可用的。直接替换掉原函数...
Init.Period = 0xFFFF; // 最大计数值 65535 htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; //对时钟计数不进行分频 HAL_TIM_Base_Init(&htim1); // 初始化时钟1 } void Delay_us(uint32_t us) { __HAL_TIM_SET_COUNTER(&htim1, 0); // 重置计数器 HAL_TIM_Base_Start(&htim1); ...
执行进入delay_init函数,如图4.3.2.4所示: 图4.3.2.4 执行进入delay_init函数 此时,可以看到g_fac_us的值已经显示出来了,默认是0(全局变量如果没有赋初值,一般默认都是0),然后继续单击: 单步运行代码到g_fac_us = sysclk; 这一行,再把鼠标光标放在sysclk上停留一会,就可以看到MDK自动提示sysclk(delay_init的...
delay_ms(600);//延时600ms 三、实操 以上一篇新建的工程为模版(任意门:STM32新建工程(固件库版))我们在那个工程的基础上进行实操; 首先我们打开那个TEST文件,在HARDWARE文件夹中建立一个文件夹命名为LED。进入USER文件夹,打开 TEST.uvprojx(关注后缀名,工程名称是自己命名的)的工程文件进入KEIL5;我们先编译一遍(...
void delay_init() { SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);//选择外部时钟HCLK/8 fac_us=SystemCoreClock/8000000; //72000000/8000000 = 9 fac_ms=(u16)fac_us*1000; //值为9000 } 这个函数是us延时函数,上面已经说了,SysTick时钟工作频率为9MHZ. ...
voidtimerDelay(uint32_t delay_ms) { // 配置定时器 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseInitTypeDef TIM_InitStruct; TIM_InitStruct.TIM_Prescaler = SystemCoreClock / 1000000 - 1; // 1us计数一次 TIM_InitStruct.TIM_CounterMode = TIM_CounterMode_Up; ...