新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > STM32學習筆記之SysTick

        STM32學習筆記之SysTick

        作者: 時間:2016-11-26 來源:網(wǎng)絡 收藏



        本文引用地址:http://www.104case.com/article/201611/321703.htm


        #define SYSTICK_COUNTFLAG 16

        //初始化延遲函數(shù)
        void delay_init(void)
        {
        uint32_t ticks;

        ticks = SystemFrequency/1000;
        if (ticks > SYSTICK_MAXCOUNT)while (1);


        SysTick->LOAD=(ticks & SYSTICK_MAXCOUNT) - 1;
        NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);
        SysTick->VAL=(0x00);
        SysTick->CTRL = (1 << SYSTICK_CLKSOURCE);//選擇內(nèi)核時鐘
        }

        //ms延時
        void delay_nms(__IO uint32_t nms)
        {
        u32 temp;

        if(nms == 0)return;
        SysTick->VAL = 0x00;//清空計數(shù)器

        SysTick->CTRL |= (1 << SYSTICK_ENABLE);

        while(nms--)
        {
        do
        {
        temp=SysTick->CTRL;
        }
        while(temp&0x01&&!(temp&(1<<16)));//等待時間到達
        }


        SysTick->CTRL &= ~(1 << SYSTICK_ENABLE);
        SysTick->VAL =0X00;//清空計數(shù)器
        }



        評論


        技術(shù)專區(qū)

        關閉
        主站蜘蛛池模板: 德昌县| 明星| 增城市| 壶关县| 孟连| 巴南区| 开平市| 广德县| 夏河县| 海晏县| 饶河县| 柘城县| 海南省| 昌都县| 绵阳市| 广宁县| 林州市| 海宁市| 宜兰市| 宜宾市| 平远县| 黄冈市| 呼伦贝尔市| 铁岭市| 双辽市| 安塞县| 长岛县| 福海县| 石门县| 鄂托克前旗| 中方县| 永年县| 垦利县| 英吉沙县| 睢宁县| 茶陵县| 双流县| 青海省| 米泉市| 清涧县| 吴忠市|