欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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

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

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

STM32程序超時(shí)設(shè)計(jì)

科技綠洲 ? 來(lái)源:工程師進(jìn)階筆記 ? 作者:工程師進(jìn)階筆記 ? 2023-06-22 10:52 ? 次閱讀

軟件超時(shí)機(jī)制

1、背景

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

2、方案一

基本思想:定時(shí)器中斷使用一個(gè)變量TICK,中斷間隔時(shí)間t,在準(zhǔn)備定時(shí)開(kāi)始時(shí)讀取此時(shí)刻的TICK,在程序運(yùn)行過(guò)程中實(shí)時(shí)讀取當(dāng)前的TICK信息并計(jì)算即可。

因此在時(shí)間計(jì)算時(shí)只需計(jì)算開(kāi)始STARTTICK和結(jié)束ENDTICK即可完成時(shí)間計(jì)算。時(shí)間計(jì)算T=(ENDTICK-STARTTICK)*t;使用一個(gè)定時(shí)器中斷每t時(shí)間處理一次中斷,中斷里面時(shí)間計(jì)數(shù)值s_u32TCNT++,如下圖所示:

圖片

程序中定義一個(gè)結(jié)構(gòu)體來(lái)保存超時(shí)開(kāi)始和超時(shí)結(jié)束時(shí)間,結(jié)構(gòu)體定義如下圖所示:

圖片

在需要做定時(shí)超時(shí)處理的地方實(shí)時(shí)的獲取當(dāng)前s_u32TCNT并賦值給u32EndTimeTick,計(jì)算開(kāi)始u32StartTimeTick和結(jié)束時(shí)u32EndTimeTick的時(shí)間差來(lái)判斷時(shí)間是否到來(lái)即可,程序設(shè)計(jì)示意代碼如下圖所示:

圖片

3、方案二

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

當(dāng)TCNT為0時(shí)即定時(shí)/超時(shí)時(shí)間到,并置超時(shí)標(biāo)志,應(yīng)用程序只需判斷標(biāo)志即可明確定時(shí)/超時(shí)時(shí)間是否到來(lái);回調(diào)函數(shù)和回調(diào)注冊(cè)函數(shù)定義如下圖所示,多個(gè)超時(shí)/定時(shí)回調(diào)函數(shù)可注冊(cè)在回調(diào)函數(shù)數(shù)組中:

圖片

圖片

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

圖片

4、對(duì)比總結(jié)

方案一優(yōu)點(diǎn)在于中斷執(zhí)行單元執(zhí)行內(nèi)容少,代碼操作容易理解,缺點(diǎn)是應(yīng)用中實(shí)時(shí)的進(jìn)行計(jì)算開(kāi)始和結(jié)束TICK差值,代碼執(zhí)行效率不高。

方案二優(yōu)點(diǎn)在于將超時(shí)函數(shù)注冊(cè)在回調(diào)中即可,程序擴(kuò)展性較好,不用做過(guò)多的數(shù)值計(jì)算,代碼執(zhí)行效率相對(duì)較高,缺點(diǎn)是定時(shí)中斷中需要遍歷所有已注冊(cè)的對(duì)調(diào),中斷執(zhí)行內(nèi)容相對(duì)較多。

STM32程序超時(shí)設(shè)計(jì)

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

while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));

以下在stm32的system_stm32f10x.c文件中,判斷外部晶振起振的程序??梢詤⒖?,在以后的程序中借鑒。

#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 讀寫(xiě)EEPROM添加超時(shí):

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

    關(guān)注

    2273

    文章

    10926

    瀏覽量

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

    關(guān)注

    23

    文章

    3256

    瀏覽量

    115442
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3797

    瀏覽量

    81456
收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    STM32_AD程序

    STM32 AD程序程序,很好的學(xué)習(xí)資料,快來(lái)下載吧
    發(fā)表于 02-15 15:26 ?38次下載

    STM32_DMA程序程序

    STM32 DMA程序程序,很好的學(xué)習(xí)資料,快來(lái)下載吧
    發(fā)表于 02-15 15:27 ?28次下載

    stm32程序

    stm32程序
    發(fā)表于 12-17 09:33 ?111次下載

    TCP的超時(shí)與重傳的全面解說(shuō)

    TCP的超時(shí)與重傳的全面解說(shuō)
    發(fā)表于 08-30 11:46 ?7次下載
    TCP的<b class='flag-5'>超時(shí)</b>與重傳的全面解說(shuō)

    關(guān)于flymcu燒錄stm32芯片超時(shí)的問(wèn)題解決

    有時(shí)候使用FlyMcu時(shí),會(huì)出現(xiàn)芯片超時(shí)無(wú)應(yīng)答,無(wú)法連接的情況,如下圖所示解決辦法1、flymcu是否設(shè)置有問(wèn)題選擇 DTR 的低電平復(fù)位,RTS 高電平進(jìn) BootLoader。這個(gè)是必要的選項(xiàng)
    發(fā)表于 10-26 15:05 ?84次下載
    關(guān)于flymcu燒錄<b class='flag-5'>stm32</b>芯片<b class='flag-5'>超時(shí)</b>的問(wèn)題解決

    嵌入式軟件定時(shí)/超時(shí)機(jī)制程序設(shè)計(jì)

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

    AN3109_用STM32F10x微控制器的DMA和DMA超時(shí)仿真通信外設(shè)FIFO

    AN3109_用STM32F10x微控制器的DMA和DMA超時(shí)仿真通信外設(shè)FIFO
    發(fā)表于 11-21 08:11 ?0次下載
    AN3109_用<b class='flag-5'>STM32</b>F10x微控制器的DMA和DMA<b class='flag-5'>超時(shí)</b>仿真通信外設(shè)FIFO

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

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

    如何設(shè)計(jì)STM32嵌入式程序超時(shí)機(jī)制?

    在嵌入式軟件程序設(shè)計(jì)過(guò)程中中,經(jīng)常會(huì)遇到超時(shí)(或定時(shí))的處理情況,基本處理思想是在時(shí)間到的時(shí)候進(jìn)行相關(guān)程序處理,下面介紹兩種超時(shí)(或定時(shí))的程序
    的頭像 發(fā)表于 06-15 17:04 ?1548次閱讀
    如何設(shè)計(jì)<b class='flag-5'>STM32</b>嵌入式<b class='flag-5'>程序</b>的<b class='flag-5'>超時(shí)</b>機(jī)制?

    寫(xiě)芯片超時(shí)該如何解決???

    寫(xiě)芯片超時(shí)該如何解決??? 芯片在現(xiàn)代電子設(shè)備中扮演著至關(guān)重要的角色。它們是設(shè)備內(nèi)部運(yùn)行的核心,控制著所有的操作。然而,由于各種原因,芯片可能會(huì)發(fā)生超時(shí)問(wèn)題。超時(shí)問(wèn)題一旦發(fā)生,可能會(huì)導(dǎo)致芯片停止正常
    的頭像 發(fā)表于 09-13 10:43 ?3572次閱讀

    單片機(jī)下載程序時(shí)老是顯示比特率超時(shí)是什么原因?怎么辦?

    單片機(jī)下載程序時(shí)老是顯示比特率超時(shí)是什么原因?怎么辦? 單片機(jī)下載程序時(shí)老是顯示比特率超時(shí),這是因?yàn)樵谙螺d程序的過(guò)程中,單片機(jī)與下載工具(如
    的頭像 發(fā)表于 09-13 10:43 ?1903次閱讀

    嵌入式軟件中兩種超時(shí)程序設(shè)計(jì)方案

    1、背景 在嵌入式軟件程序設(shè)計(jì)過(guò)程中中,經(jīng)常會(huì)遇到超時(shí)(或定時(shí))的處理情況,基本處理思想是在時(shí)間到的時(shí)候進(jìn)行相關(guān)程序處理,下面介紹兩種超時(shí)(或定時(shí))的
    的頭像 發(fā)表于 10-27 15:15 ?765次閱讀
    嵌入式軟件中兩種<b class='flag-5'>超時(shí)</b><b class='flag-5'>程序</b>設(shè)計(jì)方案

    socket連接超時(shí)如何處理

    在網(wǎng)絡(luò)編程中,socket連接超時(shí)是一個(gè)常見(jiàn)的問(wèn)題,它可能由多種原因引起,比如網(wǎng)絡(luò)延遲、服務(wù)器負(fù)載過(guò)高或者客戶端請(qǐng)求超時(shí)設(shè)置過(guò)短等。處理socket連接超時(shí)需要綜合考慮客戶端和服務(wù)器端的配置、代碼
    的頭像 發(fā)表于 11-01 16:48 ?1039次閱讀

    socket 連接超時(shí)處理技巧

    在網(wǎng)絡(luò)編程中,Socket連接超時(shí)是一個(gè)常見(jiàn)的問(wèn)題。處理超時(shí)的關(guān)鍵在于確保程序能夠優(yōu)雅地處理這些情況,避免程序崩潰或者無(wú)響應(yīng)。以下是一些處理Socket連接
    的頭像 發(fā)表于 11-12 14:13 ?606次閱讀