求问怎么用定时器延时36s?

2019-10-15 04:37发布

功能大致是给个值a自减到0,然后等待36s,给接了继电器的一个GPIO引脚一个高低电平来控制继电器的开闭。
但是不会用定时器延时这么长时间……
用的是STM32F1。
谢谢。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
老男孩
2019-10-17 07:08
本帖最后由 老男孩 于 2017-2-6 12:49 编辑

你可以用所以systick定时器写一个1ms的中断
然后设置一个全局变量:
int i=0;
void SysTick_Handler()
{
      if(i!=0)
     {
        i--;
     }
}
然后写一个延时函数
void delay_ms(int x)
{
  i=x;
  while(i);
}
这样在程序中调用delay_ms()这个函数就好了把形参赋值为3600
但是这样cpu空等时间比较多,如果要求实时性比较强的话可以用操作系统

一周热门 更多>