在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

在STM32單片機上運行除零運算的C程序代碼時為何程序不崩潰?

Dp1040 ? 來源:一起學嵌入式 ? 2023-09-14 11:11 ? 次閱讀

眾所周知,在 C 語言中,當一個數除以0的時候,會導致除法運算異常。程序也會因此崩潰。 為了避免程序崩潰,我們需要在代碼中包含對 0 的判斷。 但是呢,在 STM32 單片機上運行除零運算的C程序代碼時,卻不會出現程序崩潰的現象。這是怎么回事呢?

今天來簡單聊一聊這個問題。

聊一聊

按照常規的認知,如果 C 語言程序代碼中出現除以零的操作時,會進入異常處理,而導致程序出現異常。 有小伙伴遇到過這種場景,除零操作后續的代碼可以正常執行。其單片機為STM32系列單片機。

我們查閱 Cortex-M3 指南,可以看到除以零操作會導致用法異常(Usage Fault)。

af8026ca-52ab-11ee-a25d-92fbcf53809c.png

從中可以得知,進入Usage Fault 是有前提條件的,即 只有在 DIV_0_TRP 置位時才會發生。

通過 DIV_0_TRP 配置,打開除零異常中斷捕獲。這個位寄存器在 SCB->CCR 寄存器中。

afa4a716-52ab-11ee-a25d-92fbcf53809c.png

默認狀態下,DIV_0_TRP 為 0,除零操作不會產生異常,并且得到的結果總是為 0;當將 DIV_0_TRP 配置為1時,將會觸發除零異常中斷。

afb6380a-52ab-11ee-a25d-92fbcf53809c.png

好了,到此可以解釋為何 STM32 單片機默認情況下,進行除零操作,不會出現程序異常崩潰。

另外,除零異常觸發 UsageFault ,但是默認情況下,UsageFault 處于被禁用狀態。這時,除零異常會進入 HardFault 異常中斷。

若想使其進入 UsageFault 則需要通過 SHCSR 寄存器 bit18 進行配置。

afd3cb4a-52ab-11ee-a25d-92fbcf53809c.png






審核編輯:劉清

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

    關注

    31

    文章

    5413

    瀏覽量

    123183
  • C語言
    +關注

    關注

    180

    文章

    7629

    瀏覽量

    140144
  • 觸發器
    +關注

    關注

    14

    文章

    2031

    瀏覽量

    61842
  • Cortex-M3
    +關注

    關注

    9

    文章

    276

    瀏覽量

    60091
  • STM32單片機
    +關注

    關注

    59

    文章

    549

    瀏覽量

    59357

原文標題:STM32單片機除零運算為何程序不崩潰?

文章出處:【微信號:玩點嵌入式,微信公眾號:玩點嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    IC卡的讀寫程序 (C語言源程序代碼)

    IC卡的讀寫程序 (C語言源程序代碼)
    發表于 03-25 08:56 ?354次下載

    基于51單片機的EEPROM的源程序代碼

    基于51單片機的EEPROM的源程序代碼
    發表于 11-16 19:04 ?38次下載

    MPS430單片機和芯片CC2500做的無線收發程序代碼

    MPS430單片機和芯片CC2500做的無線收發程序代碼
    發表于 02-22 18:09 ?29次下載

    頻率計程序代碼

    51單片機C語言應用開發 程序代碼+原理圖 頻率計程序代碼
    發表于 06-29 18:28 ?12次下載

    公路溫度采集系統程序代碼

    51單片機C語言應用開發 程序代碼+原理圖
    發表于 07-01 15:01 ?1次下載

    晶閘管數字觸發控制器程序代碼

    51單片機C語言應用開發 程序代碼+原理圖
    發表于 07-01 15:21 ?3次下載

    音樂播放器程序代碼

    51單片機C語言應用開發 程序代碼原理圖
    發表于 07-01 15:21 ?5次下載

    GPS定位導航系統程序代碼

    51單片機C語言應用開發 程序代碼原理圖
    發表于 07-01 15:21 ?1次下載

    公交車自動報站系統程序代碼

    51單片機C語言應用開發 程序代碼原理圖
    發表于 07-01 15:21 ?5次下載

    汽車自動剎車系統程序代碼

    51單片機C語言應用開發 程序代碼原理圖
    發表于 07-01 15:21 ?2次下載

    51單片機搶答器程序代碼

    51單片機制作搶答器程序代碼,感興趣的小伙伴們可以看看。
    發表于 08-05 17:32 ?6次下載

    基于51單片機的ADC0809C程序代碼

    基于51單片機的ADC0809C程序代碼
    發表于 11-22 15:51 ?1.2w次閱讀

    基于51單片機的波形計數c程序代碼詳細資料免費下載

    本文檔的主要內容詳細介紹的是基于51單片機的波形計數c程序代碼詳細資料免費下載。
    發表于 09-06 15:00 ?23次下載
    基于51<b class='flag-5'>單片機</b>的波形計數<b class='flag-5'>c</b><b class='flag-5'>程序代碼</b>詳細資料免費下載

    使用51單片機設計的C語言音樂程序代碼資料免費下載

    本文檔的主要內容詳細介紹的是使用51單片機設計的C語言音樂程序代碼資料免費下載。
    發表于 12-21 08:00 ?17次下載
    使用51<b class='flag-5'>單片機</b>設計的<b class='flag-5'>C</b>語言音樂<b class='flag-5'>程序代碼</b>資料免費下載

    基于LabVIEW和單片機實現DSP應用程序代碼的自舉模塊設計

    針對現有DSP自舉模塊普遍存在程序代碼更新不便的缺陷,提出了一種可便捷高效地在線更新用戶應用程序代碼的DSP自舉模塊。該模塊由基于LabVIEW的圖形用戶界面(GUI)軟件與C8051F340
    發表于 07-16 20:36 ?2222次閱讀
    基于LabVIEW和<b class='flag-5'>單片機</b>實現DSP應用<b class='flag-5'>程序代碼</b>的自舉模塊設計
    主站蜘蛛池模板: 下农村女人一级毛片 | 性夜黄 a 爽免费看 性夜黄a爽影免费看 | 一二三区在线观看 | 性网站在线观看 | 亚洲一区二区三区在线 | 色综合天天五月色 | 看片在线观看免费 | 91综合在线 | 国产欧美亚洲精品第二区首页 | 免费国产综合视频在线看 | 中文字幕第一页在线 | 日本免费一级 | 神马午夜98 | 免费一级特黄特色大片在线 | 成人三级在线播放线观看 | yy4080午夜理论一级毛片 | 国产黄色大全 | 成人国产日本亚洲精品 | 狠狠干天天爱 | 日本不卡毛片一二三四 | 大尺度很肉污的古代小说 | 成人欧美精品一区二区不卡 | 欧美日韩在线一本卡 | 色欧美在线 | 狼色在线视频 | 永久福利盒子日韩日韩免费看 | 午夜在线观看免费高清在线播放 | 国产精品一区二区三区免费视频 | 欧美高清免费一级在线 | 欧美在线成人午夜影视 | 丁香婷婷综合五月六月 | 国产毛片一区二区三区精品 | 91视频综合网 | 久久婷婷激情综合色综合也去 | 亚洲乱亚洲乱妇41p国产成人 | 亚洲国产日韩女人aaaaaa毛片在线 | 中文字幕在线看精品乱码 | 欧美一区福利 | 18美女扒开尿口无遮挡 | 四虎4444hu4影视最新地址 | aⅴ一区二区三区 |