[MM32软件] 新人想问下mm32f031怎么做到us的延时

[复制链接]
318|2
 楼主 | 2019-12-17 17:13 | 显示全部楼层 |阅读模式
官方给的sdk例程中没有延时方面的,只有用systick做的粗略的ms延时
/********************************************************************************************************
**º¯ÊýÐÅÏ¢ £ºdelay_init(void)
**¹¦ÄÜÃèÊö £ºsystickÑÓʱº¯Êý³õʼ»¯
**ÊäÈë²ÎÊý £ºÎÞ
**Êä³ö²ÎÊý £ºÎÞ
********************************************************************************************************/
void delay_init(void)
{
    if (SysTick_Config(SystemCoreClock / 1000)) {
        /* Capture error */
        while (1);
    }
    /* Configure the SysTick handler priority */
    NVIC_SetPriority(SysTick_IRQn, 0x0);                                        //SysTickÖжÏÓÅÏȼ¶ÉèÖÃ
}

/********************************************************************************************************
**º¯ÊýÐÅÏ¢ £ºSysTick_Handler(void)
**¹¦ÄÜÃèÊö £º½øÈë¸ÃÖжϺ¯Êýºó£¬Systick½øÐеݼõ
**ÊäÈë²ÎÊý £ºÎÞ
**Êä³ö²ÎÊý £ºÎÞ
********************************************************************************************************/
void SysTick_Handler(void)
{
    TimingDelay_Decrement();
}

/********************************************************************************************************
**º¯ÊýÐÅÏ¢ £ºTimingDelay_Decrement(void)
**¹¦ÄÜÃèÊö £ºÒÔ1msµÄËٶȵݼõ
**ÊäÈë²ÎÊý £ºpclk2£¬ÀýÈçϵͳʱÖÓΪ8MHz£¬²ÎÊýÓ¦´«Èë8
**Êä³ö²ÎÊý £ºÎÞ
********************************************************************************************************/
void TimingDelay_Decrement(void)
{
    if (TimingDelay != 0x00) {
        TimingDelay--;
    }
}

/********************************************************************************************************
**º¯ÊýÐÅÏ¢ £ºdelay_ms(__IO uint32_t nTime)
**¹¦ÄÜÃèÊö £º³ÌÐòÓ¦Óõ÷ÓÃÑÓʱ£¬Ê¹ÓÃsystick
**ÊäÈë²ÎÊý £ºnTime£ºÑÓʱ
**Êä³ö²ÎÊý £ºÎÞ
********************************************************************************************************/
void delay_ms(__IO uint32_t nTime)
{
    TimingDelay = nTime;

    while(TimingDelay != 0);
}

使用特权

评论回复
| 2019-12-18 11:35 | 显示全部楼层
us级别的延时,只能用nop了吧?

使用特权

评论回复
| 2019-12-30 22:58 | 显示全部楼层
systick本来就是为定时秒使用的,us肯定不现实,你根据时钟频率算算几个NOP

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表