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

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

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

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

在STM32單片機(jī)上運(yùn)行除零運(yùn)算的C程序代碼時(shí)為何程序不崩潰?

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

眾所周知,在 C 語言中,當(dāng)一個(gè)數(shù)除以0的時(shí)候,會(huì)導(dǎo)致除法運(yùn)算異常。程序也會(huì)因此崩潰。 為了避免程序崩潰,我們需要在代碼中包含對 0 的判斷。 但是呢,在 STM32 單片機(jī)上運(yùn)行除零運(yùn)算的C程序代碼時(shí),卻不會(huì)出現(xiàn)程序崩潰的現(xiàn)象。這是怎么回事呢?

今天來簡單聊一聊這個(gè)問題。

聊一聊

按照常規(guī)的認(rèn)知,如果 C 語言程序代碼中出現(xiàn)除以零的操作時(shí),會(huì)進(jìn)入異常處理,而導(dǎo)致程序出現(xiàn)異常。 有小伙伴遇到過這種場景,除零操作后續(xù)的代碼可以正常執(zhí)行。其單片機(jī)為STM32系列單片機(jī)。

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

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

從中可以得知,進(jìn)入U(xiǎn)sage Fault 是有前提條件的,即 只有在 DIV_0_TRP 置位時(shí)才會(huì)發(fā)生。

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

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

默認(rèn)狀態(tài)下,DIV_0_TRP 為 0,除零操作不會(huì)產(chǎn)生異常,并且得到的結(jié)果總是為 0;當(dāng)將 DIV_0_TRP 配置為1時(shí),將會(huì)觸發(fā)除零異常中斷。

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

好了,到此可以解釋為何 STM32 單片機(jī)默認(rèn)情況下,進(jìn)行除零操作,不會(huì)出現(xiàn)程序異常崩潰。

另外,除零異常觸發(fā) UsageFault ,但是默認(rèn)情況下,UsageFault 處于被禁用狀態(tài)。這時(shí),除零異常會(huì)進(jìn)入 HardFault 異常中斷。

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

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






審核編輯:劉清

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

    關(guān)注

    31

    文章

    5363

    瀏覽量

    121194
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137733
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    2003

    瀏覽量

    61352
  • Cortex-M3
    +關(guān)注

    關(guān)注

    9

    文章

    270

    瀏覽量

    59591
  • STM32單片機(jī)
    +關(guān)注

    關(guān)注

    59

    文章

    549

    瀏覽量

    58823

原文標(biāo)題:STM32單片機(jī)除零運(yùn)算為何程序不崩潰?

文章出處:【微信號:玩點(diǎn)嵌入式,微信公眾號:玩點(diǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

    基于51單片機(jī)的EEPROM的源程序代碼

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

    頻率計(jì)程序代碼

    51單片機(jī)C語言應(yīng)用開發(fā) 程序代碼+原理圖 頻率計(jì)程序代碼
    發(fā)表于 06-29 18:28 ?12次下載

    公路溫度采集系統(tǒng)程序代碼

    51單片機(jī)C語言應(yīng)用開發(fā) 程序代碼+原理圖
    發(fā)表于 07-01 15:01 ?1次下載

    晶閘管數(shù)字觸發(fā)控制器程序代碼

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

    音樂播放器程序代碼

    51單片機(jī)C語言應(yīng)用開發(fā) 程序代碼原理圖
    發(fā)表于 07-01 15:21 ?5次下載

    GPS定位導(dǎo)航系統(tǒng)程序代碼

    51單片機(jī)C語言應(yīng)用開發(fā) 程序代碼原理圖
    發(fā)表于 07-01 15:21 ?1次下載

    公交車自動(dòng)報(bào)站系統(tǒng)程序代碼

    51單片機(jī)C語言應(yīng)用開發(fā) 程序代碼原理圖
    發(fā)表于 07-01 15:21 ?5次下載

    汽車自動(dòng)剎車系統(tǒng)程序代碼

    51單片機(jī)C語言應(yīng)用開發(fā) 程序代碼原理圖
    發(fā)表于 07-01 15:21 ?2次下載

    51單片機(jī)搶答器程序代碼

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

    基于51單片機(jī)的ADC0809C程序代碼

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

    基于51單片機(jī)的波形計(jì)數(shù)c程序代碼詳細(xì)資料免費(fèi)下載

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

    使用51單片機(jī)設(shè)計(jì)的C語言音樂程序代碼資料免費(fèi)下載

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

    STM32F1_ 外部NorFlash存儲程序代碼

    STM32F1_外部NorFlash存儲程序代碼
    的頭像 發(fā)表于 04-08 09:55 ?4483次閱讀
    <b class='flag-5'>STM32</b>F1_ 外部NorFlash存儲<b class='flag-5'>程序代碼</b>

    基于LabVIEW和單片機(jī)實(shí)現(xiàn)DSP應(yīng)用程序代碼的自舉模塊設(shè)計(jì)

    針對現(xiàn)有DSP自舉模塊普遍存在程序代碼更新不便的缺陷,提出了一種可便捷高效地在線更新用戶應(yīng)用程序代碼的DSP自舉模塊。該模塊由基于LabVIEW的圖形用戶界面(GUI)軟件與C8051F340
    發(fā)表于 07-16 20:36 ?2108次閱讀
    基于LabVIEW和<b class='flag-5'>單片機(jī)</b>實(shí)現(xiàn)DSP應(yīng)用<b class='flag-5'>程序代碼</b>的自舉模塊設(shè)計(jì)
    主站蜘蛛池模板: 欧美一级免费在线观看 | 亚洲韩国在线一卡二卡 | 特黄aaaaa日本大片免费看 | 色cccwww在线播放 | 成人高清毛片a | 他也色在线视频 | 色www免费视频 | 在线亚洲色图 | 午夜影视在线视频观看免费 | 夜夜操夜夜爽 | 欧美整片第一页 | 欧美色图亚洲自拍 | 亚洲娇小性色xxxx | 天天干天天操天天添 | 欧美成人在线影院 | 综合激情在线 | 欧美三级大片在线观看 | 四虎影视永久在线精品免费播放 | 一级aaa毛片| www.色播.com| 日本欧美一区二区三区免费不卡 | 大黄网站在线观看 | 奇米狠狠操| 亚洲国产精品综合久久2007 | 日本xxxx色视频在线观看免费 | 午夜免费视频观看在线播放 | 龙口护士门91午夜国产在线 | 色综合久久丁香婷婷 | 欧美成人激情在线 | 久草视频在线免费看 | 激情五月综合 | 日本一区视频 | 免费可以看黄的视频 s色 | 欧美大片一区 | 色婷婷久久免费网站 | 亚洲精品成人a在线观看 | 久青草国产手机在线视频 | 国产福利乳摇在线播放 | 日本三级在线播放线观看2021 | 国产va精品免费观看 | 美女和帅哥在床上玩的不可描述 |