单片机如何实现延时1ms或者1us

1us

//适配主频为120MHz的单片机
void Delay_us(int16_t nus) 
{
  int32_t temp; 
  SysTick->LOAD = nus*15; //120MHz
  SysTick->VAL=0X00;
  SysTick->CTRL=0X01;
  do 
  { 
    temp=SysTick->CTRL;
  }
  while((temp&0x01)&&(!(temp&(1<<16))));

  SysTick->CTRL=0x00; 
  SysTick->VAL =0X00; 
}

1ms

void Delay_ms(int16_t t)
{
		unsigned long a;
		a = t;
		while(a--)
		{
				Delay_us(1000);
		}
}

相关推荐

  1. 单片机如何实现1ms或者1us

    2024-01-26 06:58:02       54 阅读
  2. STM32系统滴答定时器SysTick实现精确msus

    2024-01-26 06:58:02       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-26 06:58:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-26 06:58:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-26 06:58:02       87 阅读
  4. Python语言-面向对象

    2024-01-26 06:58:02       96 阅读

热门阅读

  1. 机器翻译 | 从起源到今天

    2024-01-26 06:58:02       46 阅读
  2. 生成式语言模型的训练流程

    2024-01-26 06:58:02       50 阅读
  3. Spring 事务和事务传播机制

    2024-01-26 06:58:02       42 阅读
  4. 验厂的类型的流程

    2024-01-26 06:58:02       49 阅读
  5. vue3里的watch与 watchEffect

    2024-01-26 06:58:02       55 阅读