STM32CUBE生成STM32L073的工程如何实现us级延时?

2019-07-14 16:27发布

HAL库里面有ms级的延时__weak void HAL_Delay(__IO uint32_t Delay)
{
  uint32_t tickstart = 0;
  tickstart = HAL_GetTick();
  while((HAL_GetTick() - tickstart) < Delay)
  {
  }
},
但是如何实现us级的延时呢?
昨天尝试着修改了
__weak HAL_StatusTypeDef HAL_Delay_us(uint32_t TickPriority)
{
  /*Configure the SysTick to have interrupt in 1ms time basis*/
  HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);

  /*Configure the SysTick IRQ priority */
  HAL_NVIC_SetPriority(SysTick_IRQn, TickPriority ,0);

   /* Return function status */
  return HAL_OK;
}

没有实现要求,而且还出现了其他问题,程序不运行,所以想请教一下大家,如何在HAL库中实现us延时?
目前在做DHT11的程序
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
60user38
1楼-- · 2019-07-15 02:13
 精彩回答 2  元偷偷看……
djw200988
2楼-- · 2019-07-15 07:12
函数库里写明了HAL_Delay会用于HAL库本身配置过程中的很多地方,不能随便改,,可以用另外一个定时器实现
zhe0010
3楼-- · 2019-07-15 10:42
还是使用定时器实现吧,那样更好操作些
60user38
4楼-- · 2019-07-15 12:11
zhe0010 发表于 2018-10-31 12:44
还是使用定时器实现吧,那样更好操作些

好的,,我去试一下
60user38
5楼-- · 2019-07-15 14:21
djw200988 发表于 2018-10-31 12:33
函数库里写明了HAL_Delay会用于HAL库本身配置过程中的很多地方,不能随便改,,可以用另外一个定时器实现

嗯嗯嗯,我去试一下
FAI_weilijuan
6楼-- · 2019-07-15 16:47
 精彩回答 2  元偷偷看……

一周热门 更多>