色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何設計STM32嵌入式程序的超時機制?

STM32嵌入式開發(fā) ? 來源:CSDN-share明 ? 2023-06-15 17:04 ? 次閱讀

軟件超時機制

1、背景

嵌入式軟件程序設計過程中中,經(jīng)常會遇到超時(或定時)的處理情況,基本處理思想是在時間到的時候進行相關程序處理,下面介紹兩種超時(或定時)的程序設計方案。

2、方案一

基本思想:定時器中斷使用一個變量TICK,中斷間隔時間t,在準備定時開始時讀取此時刻的TICK,在程序運行過程中實時讀取當前的TICK信息并計算即可。

因此在時間計算時只需計算開始STARTTICK和結束ENDTICK即可完成時間計算。時間計算T=(ENDTICK-STARTTICK) * t;使用一個定時器中斷每t時間處理一次中斷,中斷里面時間計數(shù)值s_u32TCNT++,如下圖所示: aa1d1a18-0b5b-11ee-962d-dac502259ad0.png

程序中定義一個結構體來保存超時開始和超時結束時間,結構體定義如下圖所示:

aa32c0b6-0b5b-11ee-962d-dac502259ad0.png

在需要做定時超時處理的地方實時的獲取當前s_u32TCNT并賦值給u32EndTimeTick,計算開始u32StartTimeTick和結束時u32EndTimeTick的時間差來判斷時間是否到來即可,程序設計示意代碼如下圖所示:

aa43c9e2-0b5b-11ee-962d-dac502259ad0.png

3、方案二

基本思想:定義回調函數(shù)和回調注冊函數(shù),將定時/超時服務函數(shù)注冊回調,每一次定時器中斷執(zhí)行一次回調,回調函數(shù)只需對計時時間TCNT做減1操作即可。

當TCNT為0時即定時/超時時間到,并置超時標志,應用程序只需判斷標志即可明確定時/超時時間是否到來;回調函數(shù)和回調注冊函數(shù)定義如下圖所示,多個超時/定時回調函數(shù)可注冊在回調函數(shù)數(shù)組中: aa532fae-0b5b-11ee-962d-dac502259ad0.pngaa60b0de-0b5b-11ee-962d-dac502259ad0.png

定時中斷函數(shù)中進行遍歷處理,定時中斷函數(shù)處理示意代碼如下圖所示:

aa709a8a-0b5b-11ee-962d-dac502259ad0.png

4、對比總結

方案一優(yōu)點在于中斷執(zhí)行單元執(zhí)行內容少,代碼操作容易理解,缺點是應用中實時的進行計算開始和結束TICK差值,代碼執(zhí)行效率不高。 方案二優(yōu)點在于將超時函數(shù)注冊在回調中即可,程序擴展性較好,不用做過多的數(shù)值計算,代碼執(zhí)行效率相對較高,缺點是定時中斷中需要遍歷所有已注冊的對調,中斷執(zhí)行內容相對較多。

STM32程序超時設計

在程序設計中,出現(xiàn)以下類似語句,是非常不可靠的,很有必要加入超時處理!


while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

以下在STM32的system_stm32f10x.c文件中,判斷外部晶振起振的程序??梢詤⒖迹谝院蟮某绦蛑薪梃b。


#define HSE_STARTUP_TIMEOUT   ((uint16_t)0x0500) /*!< Time out for HSE start up */
/* Wait till HSE is ready and if Time out is reached exit */
do
{
    HSEStatus = RCC->CR & RCC_CR_HSERDY;
    StartUpCounter++;  
} while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));

I2C 讀寫EEPROM添加超時:


uint16_t i = 0x0fff;
while((!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))&&i){i--;};

審核編輯:湯梓紅

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

    關注

    5090

    文章

    19176

    瀏覽量

    306927
  • STM32
    +關注

    關注

    2271

    文章

    10923

    瀏覽量

    357099
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41655
  • 定時器
    +關注

    關注

    23

    文章

    3255

    瀏覽量

    115182
  • 程序
    +關注

    關注

    117

    文章

    3795

    瀏覽量

    81303

原文標題:如何設計STM32嵌入式程序的超時機制?

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    嵌入式軟件程序設計方案

    嵌入式軟件程序設計過程中中,經(jīng)常會遇到超時(或定時)的處理情況,基本處理思想是在時間到的時候進行相關程序處理,下面介紹兩種超時(或定時)的
    發(fā)表于 09-06 09:27 ?1344次閱讀
    <b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>程序</b>設計方案

    espconn_gethostbyname接口DNS解析超時機制要自己做嗎?

    espconn_gethostbyname這個接口,DNS解析超時機制要自己做嗎?,這個接口的回調函數(shù)是如何觸發(fā)的,有沒有超時觸發(fā)機制?
    發(fā)表于 07-12 12:29

    請問HAL庫的超時機制可以修改嗎?

    HAL庫的超時機制,好像都是采用循環(huán)判斷的方式(如下面代碼中的紅色部分),這對于低功耗控制和程序的時序控制太不利了,如果超時比較長,且該段代碼在高優(yōu)先級的任務中執(zhí)行,則低優(yōu)先級的任務在這段超時
    發(fā)表于 01-30 07:15

    Linux串口通信的超時機制

    在Linux下使用串口通信時,默認的阻塞模式是不實用的。而采用select或epoll機制的非阻塞模式,寫代碼有比較麻煩。幸好Linux的串口自己就帶有超時機制。
    發(fā)表于 07-05 08:38

    實現(xiàn)嵌入式軟件超時的方法

    鏈接:https://blog.csdn.net/qq_38767222/、https://blog.csdn.net/wyq200704/軟件超時機制1、背景在嵌入式軟件程序設計過程中,...
    發(fā)表于 12-24 06:01

    嵌入式系統(tǒng)的超時控制及其應用

    預期事件的循環(huán)等待是嵌入式系統(tǒng)應用程序的基本結構之一,在等待程序中引入超時控制是提高應用程序容錯性能的重要途徑。給出
    發(fā)表于 05-14 13:50 ?16次下載

    一種基于嵌入式系統(tǒng)的遠程程序更新機制

    提出了一種基于嵌入式系統(tǒng)的遠程程序更新機制,通過一個具體的嵌入式遠程數(shù)字監(jiān)控系統(tǒng)設計方案,分析了該機制的系統(tǒng)結構、實現(xiàn)原理和實現(xiàn)流程,實際的
    發(fā)表于 08-26 11:47 ?16次下載

    STM32嵌入式系統(tǒng)設計的智能控制網(wǎng)絡終端技術

    STM32嵌入式系統(tǒng)設計的智能控制網(wǎng)絡終端技術 本文重點介紹基于STM32的智能嵌入式終端的網(wǎng)絡控制功能的設計和實現(xiàn)。 智能網(wǎng)絡終端是實現(xiàn)智能化管理的
    發(fā)表于 05-06 17:39 ?1695次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>嵌入式</b>系統(tǒng)設計的智能控制網(wǎng)絡終端技術

    基于公平心跳超時容錯機制

    故障誤判損失模型,提出公平誤判損失(FMJL)算法,使其同時滿足長作業(yè)和短作業(yè)要求;接著,設計并實現(xiàn)了基于FMJL算法的公平超時機制。在實現(xiàn)了公平超時機制的Hadoop上運行大約345 s的短作業(yè)時,當出現(xiàn)TaskTracker節(jié)點故障時作業(yè)完成時間平均
    發(fā)表于 01-02 10:43 ?0次下載

    嵌入式Linux應用程序例程

    嵌入式Linux應用程序例程(arm嵌入式開發(fā)步驟)-嵌入式Linux應用程序例程,有需要的可以參考!
    發(fā)表于 07-30 13:23 ?16次下載
    <b class='flag-5'>嵌入式</b>Linux應用<b class='flag-5'>程序</b>例程

    嵌入式詳解

    嵌入式詳解(stm32嵌入式開發(fā)實例)-嵌入式詳解,有需要的可以參考!
    發(fā)表于 07-30 16:07 ?64次下載
    <b class='flag-5'>嵌入式</b>詳解

    嵌入式軟件定時/超時機制程序設計

    一、背景在嵌入式軟件程序設計過程中中,經(jīng)常會遇到超時(或定時)的處理情況,基本處理思想是在時間到的時候進行相關程序處理,下面介紹兩種超時(或
    發(fā)表于 11-03 18:36 ?10次下載
    <b class='flag-5'>嵌入式</b>軟件定時/<b class='flag-5'>超時機制程序</b>設計

    介紹兩種嵌入式軟件超時(或定時)的程序設計方案

    嵌入式軟件程序設計過程中中,經(jīng)常會遇到超時(或定時)的處理情況,基本處理思想是在時間到的時候進行相關程序處理,下面介紹兩種超時(或定時)的
    的頭像 發(fā)表于 05-20 10:28 ?1060次閱讀
    介紹兩種<b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>超時</b>(或定時)的<b class='flag-5'>程序</b>設計方案

    STM32程序超時設計

    軟件超時機制 1、背景 在嵌入式軟件程序設計過程中中,經(jīng)常會遇到超時(或定時)的處理情況,基本處理思想是在時間到的時候進行相關程序處理,下面
    的頭像 發(fā)表于 06-22 10:52 ?1216次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>程序</b><b class='flag-5'>超時</b>設計

    嵌入式軟件中兩種超時程序設計方案

    1、背景 在嵌入式軟件程序設計過程中中,經(jīng)常會遇到超時(或定時)的處理情況,基本處理思想是在時間到的時候進行相關程序處理,下面介紹兩種超時
    的頭像 發(fā)表于 10-27 15:15 ?738次閱讀
    <b class='flag-5'>嵌入式</b>軟件中兩種<b class='flag-5'>超時</b><b class='flag-5'>程序</b>設計方案
    主站蜘蛛池模板: 2021国产精品视频一区 | 欧美精品一区二区三区视频 | 国产精品久久国产三级国不卡顿 | 欧美性猛交XXXX乱大交极品 | 99成人在线视频 | 亚洲 欧美 国产 视频二区 | 亚洲精品一二三区区别在哪 | 久久三级视频 | 久久精品中文字幕 | 无码人妻丰满熟妇区五十路久久 | 亚洲欧美中文字幕高清在线 | 国精产品一区二区三区有限公司 | 97国产蝌蚪视频在线观看 | 国产精品内射久久久久欢欢 | 影音先锋av男人资源 | 国产毛多水多高潮高清 | 侮辱丰满美丽的人妻 | 少妇的肉体AA片免费观看 | 亚洲色图激情文学 | 可以看的黄页的网站 | 2019天天射干 | 亚洲伊人久久大香线蕉综合图片 | 欧美 日韩 亚洲 在线 | 国产精品久久久久久久久久免费 | 精品国产美女AV久久久久 | 欧美ZC0O人与善交的最新章节 | 精品无码久久久久久久动漫 | 真实的强视频免费网站 | 制服国产欧美亚洲日韩 | 久久精品国产在热亚洲完整版 | 亚洲香蕉网久久综合影院 | 手机免费毛片 | 538在线视频一区二区视视频 | ass亚洲熟妇毛耸耸pics | 秋霞最新高清无码鲁丝片 | 草草久久久无码国产专区全集观看 | 无码AV免费精品一区二区三区 | 男生互捏jiji的故事 | 亚洲国语在线视频手机在线 | 果冻传媒在线完整免费播放 | 小莹的性荡生活40章 |