描述 STM32程序从标准库移植到HAL库的时候,会发现HAL库中只有一个毫秒级延时函数HAL_Delay(),而没有微秒级延时delay_us(),本文就在HAL库中用定时器实现这个delay_us()。 如下图,找到HAL_Delay()函数定义的地方,发现这个函数有__weak标识,是一个弱化函数,可以被重写。 由于HAL库许多地方都使用了HAL_Delay()...
复杂的代码阅读起 分享10赞 stm32吧 zxcenit 刚开始学stm32用keli还是学stm32cubeide和hal库RT 学过一段时间stm8 分享35 stm32吧 78454857a 求助HAL_Delay和delay_ms有什么差别RT,求大神解答? 分享2赞 stm32吧 free一路东风破 鄙人初学者,有一疑惑,学stm32 到底用什么库?是固件库hal 库两个都学?还是只...
用了原子哥的delay函数文件的delay ms就不能用HAL库,用了HAL库就不能用delay。
int main(void) { uint16_t adcx; float temp; uint8_t i = 0; HAL_Init(); /* 初始化HAL库 */ /* 初始化M4内核时钟,209M */ if(IS_ENGINEERING_BOOT_MODE()) { sys_stm32_clock_init(34, 2, 2, 17, 6826); } usart_init(115200); /* 串口初始化为115200 */ delay_init(209); /...
可以看到HAL_Delay函数的目的是提供毫秒级别的延时,意味着当你输入HAL_Delay(500),硬件会尽量延时精确到500ms的时间。 与之不同的是,osDelay函数的输入是ticks。ticks是一个计时单位,表示任务将被挂起的时间长度。每个tick的时间取决于FreeRTOS配置的时钟节拍(tick)周期。例如,如果tick周期为1毫秒,那么传递参数ticks...
ST为各系列提供的标准外设库稍微有些区别。例如,STM32F1x的库和STM32F3x的库在文件结构上就有些不同,此外,在内部的实现上也稍微有些区别,这个在具体使用(移植)时,需要注意一下!但是,不同系列之间的差别并不是很大,而且在设计上是相同的。 STM32的标准外设库涵盖以下3个抽象级别: ...
超时指的的是:比如你设定10ms,但是由于一些原因,超过了10ms,就会打断,直接跳出来,但是如果设定完了,那就直接退出,又不会说非要等待到10ms,这个过程CPU哪里空转了!!! 我贴出的代码的那个while(1)循环就是CPU在空转啊,如果它是在高优先级的任务中执行,这段时间内低优先级任务是无法得到执行的。 2019-1-30...
MCU独立看门狗和窗口看门狗的区别 早期的MCU没有看门狗,就容易引起有些产品死机了不能重启工作。为了避免这个问题,后期的MCU在内部集成了看门狗的功能。 2023-03-03 09:18:29 HAL库常用函数汇总 1,系统函数HAL_Delay原型:voidHAL_Delay(uint32_tDelay);作用:利用滴答定时器生成的系统延迟函数参数:Delay:延迟时间...
printf("Duty is :%0.2f%% Frequency is : %0.2f ms\r\n", Duty, Frequency); HAL_Delay(1000); } } // 定时TIM2 定时亮灯的中断函数 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *tim) { if (tim == &htim2) { HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13); ...
168Mhz */ delay_init(168); /* 延时初始化 */ usart_init(115200); /* 串口初始化为115200 */ led_init(); /* 初始化LED */ btim_timx_int_init(5000 - 1, 8400 - 1); /* 84 000 000 / 84 00 = 10 000 10Khz的计数频率,计数5K次为500ms */ while (1) { delay_ms(500); } }...