chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

個人對STM32 SysTick的總結(jié)(寄存器操作)

撞上電子 ? 2024-01-06 08:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、概述:

SysTick是一個簡單的遞減24位計數(shù)器。如果你不需要再應(yīng)用程序中嵌入操作系統(tǒng),SysTick可以作為簡單的延時和產(chǎn)生周期性的中斷。

狀態(tài)控制寄存器的第0位可以使能計數(shù)器,當(dāng)前值寄存器隨著時鐘一直遞減,當(dāng)他減到0的時候,重裝載寄存器就會重新裝載這只的值,計數(shù)器繼續(xù)從這個值遞減。


二、相關(guān)寄存器:

2.1SysTick->CTRL 狀態(tài)和控制寄存器

a6b115d4-ac26-11ee-aa22-92fbcf53809c.jpg

位16:當(dāng)前值寄存器遞減到0,位16置1

位2:時鐘源選擇位,0:使用外部參考時鐘;1:使用內(nèi)核時鐘

位1:使能SysTick中斷,當(dāng)前值寄存器遞減到0時產(chǎn)生中斷

位0:SysTick時鐘使能


2.2SysTick->LOAD 重裝載值寄存器

a6bd978c-ac26-11ee-aa22-92fbcf53809c.jpg

當(dāng)前值寄存器為0時,自動將重裝載值重裝到當(dāng)前值計數(shù)器,重裝載值的大小需要自己設(shè)置。


2.3 SysTick->VAL當(dāng)前值寄存器

a6c179d8-ac26-11ee-aa22-92fbcf53809c.jpg

可讀可寫,當(dāng)計數(shù)器使能時,這個寄存器的值開始遞減,使用前后注意清零。

三、SysTick邏輯圖

a6c58bd6-ac26-11ee-aa22-92fbcf53809c.jpg

a6d2c760-ac26-11ee-aa22-92fbcf53809c.jpg


四、時鐘頻率與延時

4.1時鐘選擇采用參考8分頻的參考時鐘比較準(zhǔn),所以此處SysTick計數(shù)器選擇21M的時鐘。

a6e0a4c0-ac26-11ee-aa22-92fbcf53809c.jpg

4.2如何延時1us時鐘頻率為21M,也就是1s的時間技術(shù)21M次。由此可知計數(shù)一次用了 (1/21000000)s ,用了(1/21000)ms, 用了(1/21) us,所以,1us計數(shù)21次。
4.3如何延時1ms因為1ms = 1000us,所以綜上所述,1ms計數(shù)1000*21次計數(shù),1ms也就是21000次計數(shù)
4.4最大延時24位計數(shù)器能保存的最大值 : 16777215。最大延時時間=16777215 /21=798915us=798.915ms

五、示例代碼

#include "delay.h"

#define Value_us 21#define Value_ms 21000

void delay_init(void){ SysTick->CTRL &= (1 << 2); //控制寄存器位2置0,選擇8分頻時鐘 SysTick->CTRL &= ~(1 << 0); //關(guān)閉計數(shù)器}void delay_us(u32 num){ SysTick->LOAD = num * Value_us; SysTick->VAL = 0; SysTick->CTRL |= (1 << 0); //使能計數(shù)器 while (!(SysTick->CTRL & 1<<16)); //判斷是否計數(shù)完畢 SysTick->VAL = 0; SysTick->CTRL &= ~(1 << 0); //關(guān)閉計數(shù)器 }void delay_ms(u32 num){ SysTick->LOAD = num * Value_ms; SysTick->VAL = 0; SysTick->CTRL |= (1 << 0); //使能計數(shù)器 while (!(SysTick->CTRL & 1<<16)); SysTick->VAL = 0; SysTick->CTRL &= ~(1 << 0); //關(guān)閉計數(shù)器 }

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5588

    瀏覽量

    128994
  • STM32
    +關(guān)注

    關(guān)注

    2305

    文章

    11118

    瀏覽量

    370956
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2306

    瀏覽量

    97542
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    SysTick的定義與相關(guān)寄存器詳解

    一、概述:SysTick是一個簡單的遞減24位計數(shù)如果你不需要再應(yīng)用程序中嵌入操作系統(tǒng),SysTick可以作為簡單的延時和產(chǎn)生周期性的中斷;狀態(tài)控制
    發(fā)表于 01-05 07:26

    SysTick寄存器介紹

    設(shè)置系統(tǒng)時鐘SYSCLK 等于72M。當(dāng)重裝載數(shù)值寄存器的值遞減到0 的時候,系統(tǒng)定時就產(chǎn)生一次中斷,以此循環(huán)往復(fù)。SysTick 寄存器介紹Sy
    發(fā)表于 01-21 11:37

    stm32標(biāo)準(zhǔn)例程-寄存器

    stm32標(biāo)準(zhǔn)例程-寄存器版本的源代碼,57個實驗例程,從跑馬燈到操作系統(tǒng),全方位學(xué)習(xí)stm32開發(fā)
    發(fā)表于 11-26 16:17 ?0次下載

    ARM寄存器學(xué)習(xí)總結(jié)

    ARM寄存器學(xué)習(xí)總結(jié)
    發(fā)表于 01-04 15:10 ?0次下載

    寄存器操作方法的經(jīng)驗和其總結(jié)

    接觸了一陣子的STM32函數(shù)庫,使用起來挺方便的,但是很少有處理會有函數(shù)庫,大部分情況下還是要自己來對寄存器進(jìn)行操作,所以還是不要生疏了對寄存器
    的頭像 發(fā)表于 12-19 09:30 ?9125次閱讀
    對<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>方法的經(jīng)驗和其<b class='flag-5'>總結(jié)</b>

    寄存器操作方法_對寄存器操作的通用方法總結(jié)

    本文主要詳解寄存器操作方法以及對寄存器操作的通用方法總結(jié),具體的跟隨小編來了解一下。
    的頭像 發(fā)表于 05-22 15:53 ?2.4w次閱讀

    SysTick定時介紹,SysTick定時寄存器

    STM32F1 庫函數(shù)中,并沒有提供相應(yīng)的 SysTick 定時配置函數(shù),我們要操作 SysTick 定時
    的頭像 發(fā)表于 02-11 15:37 ?1.9w次閱讀
    <b class='flag-5'>SysTick</b>定時<b class='flag-5'>器</b>介紹,<b class='flag-5'>SysTick</b>定時<b class='flag-5'>器</b><b class='flag-5'>寄存器</b>

    STM32F103:精準(zhǔn)延時delay——SysTick使用

    處理的微控制都可以由這個定時獲得一定的時間間隔。2. SysTick相關(guān)寄存器狀態(tài)寄存器-
    發(fā)表于 12-02 18:36 ?10次下載
    <b class='flag-5'>STM32</b>F103:精準(zhǔn)延時delay——<b class='flag-5'>SysTick</b>使用

    STM32 使用寄存器編寫SysTick定時

    STM32 使用寄存器編寫SysTick定時STM32入門一定要搞清楚定時可以通過syste
    發(fā)表于 12-04 11:51 ?2次下載
    <b class='flag-5'>STM32</b> 使用<b class='flag-5'>寄存器</b>編寫<b class='flag-5'>SysTick</b>定時<b class='flag-5'>器</b>

    STM32學(xué)習(xí)筆記(2)——寄存器

    STM32 第二天寄存器寄存器功能:寄存器的功能是存儲二進(jìn)制代碼,它是由具有存儲功能的觸發(fā)組合起來構(gòu)成的。一個觸發(fā)
    發(fā)表于 12-08 17:36 ?18次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)筆記(2)——<b class='flag-5'>寄存器</b>

    帶你模仿正點原子編程風(fēng)格到深入學(xué)習(xí)寄存器并手把手編寫STM32F103寄存器程序(SYSTICK滴答時鐘之delay延時)

    帶你模仿正點原子到寄存器編寫–SYSTICK(delay函數(shù))以下是本篇文章正文內(nèi)容,下面案例可供參考鄧家文-廣州華軟軟件學(xué)院一、 前提了解系統(tǒng)時鐘systickSTM32內(nèi)部的硬件
    發(fā)表于 12-08 18:21 ?0次下載
    帶你模仿正點原子編程風(fēng)格到深入學(xué)習(xí)<b class='flag-5'>寄存器</b>并手把手編寫<b class='flag-5'>STM32</b>F103<b class='flag-5'>寄存器</b>程序(<b class='flag-5'>SYSTICK</b>滴答時鐘之delay延時)

    stm32是如何將寄存器值通過標(biāo)準(zhǔn)庫寫入寄存器的?

    GPIO_Init函數(shù)3.總結(jié)0. 前言在平時的學(xué)習(xí)和工作中,可能很少有人會實際去操作寄存器,但是去了解庫函數(shù)是如何去操作寄存器是很有必要
    發(fā)表于 12-16 16:58 ?18次下載
    <b class='flag-5'>stm32</b>是如何將<b class='flag-5'>寄存器</b>值通過標(biāo)準(zhǔn)庫寫入<b class='flag-5'>寄存器</b>的?

    [學(xué)習(xí)筆記]STM32F1 SYSTICK 滴答定時(寄存器、標(biāo)準(zhǔn)庫、HAL庫)

    目錄0. 博主理解:1. 實驗內(nèi)容及步驟:2. 硬件說明3. 寄存器說明3.1 SysTick的時鐘和使能:3.2 SysTick重裝載數(shù)值寄存器:3.3
    發(fā)表于 12-23 20:02 ?7次下載
    [學(xué)習(xí)筆記]<b class='flag-5'>STM32</b>F1 <b class='flag-5'>SYSTICK</b> 滴答定時<b class='flag-5'>器</b>(<b class='flag-5'>寄存器</b>、標(biāo)準(zhǔn)庫、HAL庫)

    STM32寄存器操作

    STM32寄存器操作在使用STM32單片機(jī)編程時一般都用ST給的庫函數(shù)編程,庫函數(shù)編程的底層就是對單片機(jī)寄存器
    發(fā)表于 01-13 15:43 ?19次下載
    <b class='flag-5'>STM32</b>的<b class='flag-5'>寄存器</b><b class='flag-5'>操作</b>

    RAL寄存器模型操作指南

    寄存器模型操作,指的是通過寄存器模型對RTL中寄存器進(jìn)行讀寫訪問,或者同步寄存器模型與RTL中寄存器
    的頭像 發(fā)表于 07-12 09:37 ?1818次閱讀
    RAL<b class='flag-5'>寄存器</b>模型<b class='flag-5'>操作</b>指南