}returntrue; }boolwait_clkfalling(){// while (digitalRead(fake_clk) == LOW);// while (digitalRead(fake_clk) == HIGH);uint32_ttime_start = HAL_GetTick();while(LL_GPIO_IsInputPinSet(GPIOA, LL_GPIO_PIN_15) == LOW) {if((HAL_GetTick() - time_start) >1)returnfalse; }while(LL_...
1、如果只是想用systick来作为延时用,程序不想被中断打断,就只需要使能systick而不用开启systick中断,调用 LL_Init1msTick 即可 void LL_Init1msTick(uint32_t HCLKFrequency) ---> LL_InitTick(HCLKFrequency, 1000U); ---> __STATIC_INLINE void LL_InitTick(uint32_t HCLKFrequency, uint32_t Ticks)...
【下面截图便是Hal_Delay()函数代码】 显然,在HAL库里的Delay函数里进来后也首先做了加1操作,跟LL库的做法一样。 上面HAL库延时函数代码里的Tickstart是调用Delay()函数时首次读到的滴答中断计数变量的值,wait是延时值,Hal_GetTick()函数动态读取到的滴答中断计数变量的值【uwTick】。对于上面while语句里面的uwTi...
原始代码 uint8_tEEPROM_ReadIT(I2C_TypeDef*i2c_x,uint8_ti2c_address,I2C_Package_Typedef*pPackage){uint32_ttimeout_ms=10+HAL_GetTick();TxIndex=0;NumOfBytesToWrite=2;pTxBuff=(uint8_t*)pPackage;EEPROM_WriteOrRead=EEPROM_WRITE;I2C_ADDRESS=i2c_address;/*Enable ACK* 使能应答*/LL_I2C_Acknowl...
__weak uint32_t HAL_GetTick(void) 返回从系统运行开始经过的时间,默认情况下单位为ms; __weak void HAL_Delay(uint32_t Delay) 延时,该延时是阻塞的,默认情况下延时单位为ms,该函数不能在等于或高于系统时钟源优先级(默认情况下为0)的中断程序中使用,不然程序就阻塞在这里不动了; ...
*/voidHAL_Delay(uint32_t Delay){bsp_DelayMS(Delay);}HAL_StatusTypeDefHAL_InitTick(uint32_t TickPriority){returnHAL_OK;}uint32_tHAL_GetTick(void){staticuint32_t ticks=0U;uint32_t i;if(_tx_thread_system_state==TX_INITIALIZE_IS_FINISHED){return((uint32_t)_tx_time_get());}/* 如果...
uint32_t HAL_GetTick (void) { static uint32_t ticks = 0U; uint32_t i; if (_tx_thread_system_state == TX_INITIALIZE_IS_FINISHED) { return ((uint32_t)_tx_time_get()); } /* 如果ThreadX还没有运行,采用下面方式 */ for (i = (SystemCoreClock >> 14U); i > 0U; i--) ...
minimum wait */if(wait<HAL_MAX_DELAY){wait+=(uint32_t)(uwTickFreq);}while((HAL_GetTick()...
• It provides ready to use user files preconfigured as defined below: – HAL is initialized – SysTick ISR implemented for HAL_GetTick() – System clock configured with the selected device frequency. Note: If an existing project is copied to another location, then include paths must be ...
uint32_t HAL_GetTick (void) { static uint32_t ticks = 0U; uint32_t i; if (_tx_thread_system_state == TX_INITIALIZE_IS_FINISHED) { return ((uint32_t)_tx_time_get()); } /* 如果ThreadX还没有运行,采用下面方式 */ for (i = (SystemCoreClock >> 14U); i > 0U; i--) ...