LOAD = t" />

一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

stm32delay函數(shù)怎么寫

科技綠洲 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-12-21 17:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STM32的延時(shí)函數(shù)可以使用SysTick定時(shí)器來實(shí)現(xiàn)。SysTick定時(shí)器是一個(gè)24位的計(jì)數(shù)器,它可以在每個(gè)時(shí)鐘周期自動(dòng)減少計(jì)數(shù)值,直到計(jì)數(shù)值為0時(shí)觸發(fā)中斷。我們可以利用SysTick定時(shí)器的特性來實(shí)現(xiàn)精確的延時(shí)函數(shù)。

以下是一個(gè)實(shí)現(xiàn)延時(shí)函數(shù)的示例代碼:

#include "stm32xxxx.h"

void SysTick_Handler(void)
{
// 在這里可以寫一些需要周期執(zhí)行的操作,但是要盡量保持簡(jiǎn)潔
}

void delay_us(uint32_t us)
{
uint32_t ticks = us * (SystemCoreClock / 1000000); // 將微秒轉(zhuǎn)換為滴答數(shù)

SysTick- >LOAD = ticks - 1; // 設(shè)置定時(shí)器加載值
SysTick- >VAL = 0; // 清空當(dāng)前計(jì)數(shù)值
SysTick- >CTRL |= SysTick_CTRL_ENABLE_Msk; // 啟動(dòng)定時(shí)器

while (!(SysTick- >CTRL & SysTick_CTRL_COUNTFLAG_Msk)); // 等待定時(shí)器倒計(jì)數(shù)完畢

SysTick- >CTRL &= ~SysTick_CTRL_ENABLE_Msk; // 關(guān)閉定時(shí)器
}

void delay_ms(uint32_t ms)
{
while (ms--)
{
delay_us(1000); // 延時(shí)1毫秒
}
}

int main()
{
// 你的程序邏輯
// ...

while (1)
{
// 你的程序邏輯
// ...
}

return 0;
}

在這個(gè)例子中,我們通過SysTick定時(shí)器的中斷來實(shí)現(xiàn)延時(shí)函數(shù)。首先,我們定義了兩個(gè)延時(shí)函數(shù)delay_usdelay_ms,它們分別用來延時(shí)指定的微秒數(shù)和毫秒數(shù)。

在delay_us函數(shù)中,我們首先計(jì)算需要延時(shí)的滴答數(shù),然后設(shè)置SysTick的LOAD寄存器為滴答數(shù)減1,清空當(dāng)前計(jì)數(shù)值,并啟動(dòng)定時(shí)器。接著,我們使用一個(gè)循環(huán)等待直到定時(shí)器倒計(jì)數(shù)完畢,即SysTick_CTRL_COUNTFLAG位被置位。最后,我們關(guān)閉定時(shí)器并結(jié)束函數(shù)。

在delay_ms函數(shù)中,我們調(diào)用delay_us函數(shù)來實(shí)現(xiàn)毫秒級(jí)的延時(shí)。我們通過循環(huán)遞減ms的方式來實(shí)現(xiàn)毫秒級(jí)的延時(shí),每次循環(huán)調(diào)用一次delay_us函數(shù)延時(shí)1毫秒。

在main函數(shù)中,我們可以在你的程序邏輯中調(diào)用延時(shí)函數(shù)來實(shí)現(xiàn)需要的延時(shí)效果。你可以在while循環(huán)中重復(fù)調(diào)用延時(shí)函數(shù)來實(shí)現(xiàn)周期性的延時(shí)效果。

需要注意的是,由于SysTick定時(shí)器是由SysTick_Handler中斷驅(qū)動(dòng)的,所以你不能在SysTick_Handler中寫太多的代碼,以免影響延時(shí)的準(zhǔn)確性。建議在SysTick_Handler中只加入必要的代碼,并保持簡(jiǎn)潔。

以上是一個(gè)簡(jiǎn)單的基于SysTick定時(shí)器的延時(shí)函數(shù)的實(shí)現(xiàn)。你可以根據(jù)自己的需求進(jìn)行修改和改進(jìn),比如添加更多的延時(shí)函數(shù)、增加更高的精度等。

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

    關(guān)注

    2295

    文章

    11032

    瀏覽量

    365210
  • 計(jì)數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2291

    瀏覽量

    96443
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3300

    瀏覽量

    119030
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4381

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    匯總stm32 delay文件

    stm32 delay文件總結(jié)delay.h#ifndef __DELAY_H#define __DELAY_H #include "sys
    發(fā)表于 08-11 06:12

    STM32 delay函數(shù)有哪些應(yīng)用

    STM32delay函數(shù)應(yīng)用應(yīng)用與說明Cortex M4內(nèi)核編程手冊(cè)有關(guān)時(shí)鐘系統(tǒng)的內(nèi)容定時(shí)函數(shù)的實(shí)現(xiàn)delay_init 函數(shù)
    發(fā)表于 08-23 06:23

    怎樣去解決STM32F103ZET6庫(kù)函數(shù)程序移植的Delay函數(shù)異常問題

    為什么STM32F103ZET6庫(kù)函數(shù)程序移植到STM32F103C8T6時(shí)Delay函數(shù)會(huì)發(fā)生異常呢?其解決方法是什么?
    發(fā)表于 12-15 06:58

    LED閃爍開發(fā)之while循環(huán)函數(shù)delay延時(shí)函數(shù)的資料概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是LED閃爍開發(fā)之C語(yǔ)言常用的預(yù)處理命令和while循環(huán)函數(shù)delay延時(shí)函數(shù)的資料概述免費(fèi)下載。
    發(fā)表于 11-12 08:00 ?15次下載
    LED閃爍開發(fā)之while循環(huán)<b class='flag-5'>函數(shù)</b>和<b class='flag-5'>delay</b>延時(shí)<b class='flag-5'>函數(shù)</b>的資料概述

    51單片機(jī)延時(shí)函數(shù)delay的編寫實(shí)例函數(shù)和資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是51單片機(jī)延時(shí)函數(shù)delay的編寫實(shí)例函數(shù)和資料免費(fèi)下載。
    發(fā)表于 07-17 17:39 ?2次下載
    51單片機(jī)延時(shí)<b class='flag-5'>函數(shù)</b><b class='flag-5'>delay</b>的編寫實(shí)例<b class='flag-5'>函數(shù)</b>和資料免費(fèi)下載

    stm32用什么軟件程序

    stm32用什么軟件程序?STM32單片機(jī)在編程時(shí)可以使用庫(kù)函數(shù)和使用配置寄存器的方式來進(jìn)行程序的實(shí)現(xiàn)。
    發(fā)表于 09-21 16:00 ?1.5w次閱讀

    STM32單片機(jī)-庫(kù)函數(shù)】SysTick延時(shí)—delay

    : SysTick延時(shí)函數(shù)頭文件 /* --------------------------------------------------------- */#ifndef _DELAY_H_#define _DELAY
    發(fā)表于 11-24 19:06 ?13次下載
    【<b class='flag-5'>STM32</b>單片機(jī)-庫(kù)<b class='flag-5'>函數(shù)</b>】SysTick延時(shí)—<b class='flag-5'>delay</b>

    msp430內(nèi)置函數(shù)總結(jié) __bic_SR_register(),__delay_cycles(x)

    msp430內(nèi)置函數(shù)總結(jié) __bic_SR_register(),__delay_cycles(x)
    發(fā)表于 11-25 09:51 ?0次下載
    msp430內(nèi)置<b class='flag-5'>函數(shù)</b>總結(jié) __bic_SR_register(),__<b class='flag-5'>delay</b>_cycles(x)

    c51簡(jiǎn)單delay函數(shù),不同類型同值字符的延時(shí)時(shí)間不同

    c51delay函數(shù)不同類型參數(shù)的不同效果
    發(fā)表于 11-29 10:51 ?11次下載
    c51簡(jiǎn)單<b class='flag-5'>delay</b><b class='flag-5'>函數(shù)</b>,不同類型同值字符的延時(shí)時(shí)間不同

    stm32 delay文件總結(jié)

    stm32 delay文件總結(jié)delay.h#ifndef __DELAY_H#define __DELAY_H #includ
    發(fā)表于 12-24 19:36 ?6次下載
    <b class='flag-5'>stm32</b> <b class='flag-5'>delay</b>文件總結(jié)

    C語(yǔ)言 | 延時(shí)函數(shù)Delay

    的,采用“nop”函數(shù),這個(gè)函數(shù)相當(dāng)匯編NOP指令,延時(shí)幾微秒。NOP指令為單周期指令,可由晶振頻率算出延時(shí)時(shí)間,對(duì)于12M晶振,延時(shí)1us。 延時(shí)一個(gè)機(jī)器周期1.08us#include_nop_();延時(shí)10usvoid
    發(fā)表于 01-13 13:38 ?14次下載
    C語(yǔ)言 | 延時(shí)<b class='flag-5'>函數(shù)</b>(<b class='flag-5'>Delay</b>)

    Systick定時(shí)器延時(shí)原理與HAL_Delay()延時(shí)函數(shù)的使用

    代碼的書寫過程中經(jīng)常用到延時(shí),這里主要講述一下HAl延時(shí),HAL庫(kù)之HAL_Delay()函數(shù)在72M主頻,STM32CUBEMX自動(dòng)生成情況下,默認(rèn)為延時(shí)1ms單位,即HAL_Delay
    的頭像 發(fā)表于 04-26 09:09 ?1.6w次閱讀

    在HAL庫(kù)中用定時(shí)器實(shí)現(xiàn)自定義延時(shí)函數(shù)delay_us()

    STM32程序從標(biāo)準(zhǔn)庫(kù)移植到HAL庫(kù)的時(shí)候,會(huì)發(fā)現(xiàn)HAL庫(kù)中只有一個(gè)毫秒級(jí)延時(shí)函數(shù)HAL_Delay(),而沒有微秒級(jí)延時(shí)delay_us(),本文就在HAL庫(kù)中用定時(shí)器實(shí)現(xiàn)這個(gè)
    的頭像 發(fā)表于 09-21 10:33 ?1.3w次閱讀

    如何列無(wú)源網(wǎng)絡(luò)傳遞函數(shù)

    如何列無(wú)源網(wǎng)絡(luò)傳遞函數(shù)
    的頭像 發(fā)表于 03-10 16:15 ?5982次閱讀
    如何列<b class='flag-5'>寫</b>無(wú)源網(wǎng)絡(luò)傳遞<b class='flag-5'>函數(shù)</b>

    STM32蜂鳴器音樂播放實(shí)例教程

    開啟定時(shí)器TIM7,是為了延時(shí)函數(shù)HAL_Delay_us()。具體過程請(qǐng)移步此文:STM32的HAL庫(kù)實(shí)現(xiàn)自定義延時(shí)函數(shù)
    發(fā)表于 03-26 14:19 ?3042次閱讀
    <b class='flag-5'>STM32</b>蜂鳴器音樂播放實(shí)例教程