日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

宏定義 “中斷函數(shù)接口”的注意事項

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-07 16:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天周六,寫點輕松一點的內(nèi)容,相信很多朋友都有使用宏定義的經(jīng)歷。宏定義寫得好,你的代碼修改、調(diào)試、移植等都方便;相反,寫的不好,可能你的頭腦會炸掉。

1問題來源

我前面移植一部分代碼,忽略了一些細(xì)節(jié)問題,直接測試,一有數(shù)據(jù)(正常應(yīng)該是進(jìn)入中斷),程序就掛了,進(jìn)入了“B .”處,如下圖:

這代表什么意思呢?網(wǎng)上一搜B .的意思就知道,程序運行到這個地方,在這里死循環(huán)了。

2問題跟蹤,并解決

遇到上面問題,于是我就開始了在線調(diào)試查找問題。果然,在線調(diào)試一眼就看出了問題,中斷函數(shù)體沒有被觸發(fā),先看下圖:

看上圖,經(jīng)常調(diào)試的人就知道,前面沒有灰色的標(biāo)記代表程序不會運行到這個位置。

上面那個DEBUG_COM_IRQHandler函數(shù),我使用的是宏定義:

那么,問題來了,我使用了宏定義中斷函數(shù)接口,為什么沒有進(jìn)入中斷函數(shù)?

問題就出在宏定義和被定義函數(shù)體的包含關(guān)系,簡單說就是:stm32f4xx_it.c文件里面應(yīng)該添加#include "bsp_usart.h"這行代碼。

不添加包含宏定義的文件,編譯時就會把DEBUG_COM_IRQHandler當(dāng)做成一個普通函數(shù),也不會出錯。此時,中斷函數(shù)其實是沒有定義的,那么,程序運行中斷函數(shù)時,沒有定義函數(shù)體,自然就會跳轉(zhuǎn)到B .處去。

解決的辦法就如上所說:stm32f4xx_it.c文件添加添加#include "bsp_usart.h"即可。

3總結(jié)

針對以上問題,拓展并總結(jié)幾點內(nèi)容:

1.宏定義注意事項

宏定義與源代碼最好要高度一致,就拿USART時鐘的宏定義來說,如下這種方式就容易出錯。

宏定義:

#define DEBUG_COM_CLK RCC_APB2Periph_USART1

調(diào)用方式:

RCC_APB2PeriphClockCmd(DEBUG_COM_CLK, ENABLE);

假如我修改時鐘:

RCC_APB2Periph_USART1改為RCC_APB1Periph_USART2

發(fā)現(xiàn)問題沒有:

APB2和APB1混亂調(diào)用了。

2.B .含義

這里提出來,是讓有些初學(xué)者順便了解一下(其實網(wǎng)上一搜就明白)。這是一個匯編指令,“B”代表不返回的跳轉(zhuǎn),比如跳到某個標(biāo)號處?!?”是指定當(dāng)前的地址,B .這條指令,其實就是死循環(huán)。

3.在線調(diào)試代碼覆蓋

經(jīng)常有朋友問題:我在線調(diào)試,為什么有些地方不能打斷點?處理需要配置輸出調(diào)試信息之外,就是這里說的代碼覆蓋問題。

看見我上面有兩個中斷函數(shù)那張圖沒有,里面我有文字說明:前面有灰色標(biāo)記的代碼,代表程序可執(zhí)行(已覆蓋)。相反,則沒有被覆蓋。

4.中斷函數(shù)接口宏定義

一般很多初學(xué)者不知道函數(shù)接口可以使用宏定義。其實,有很多地方,包括一些標(biāo)準(zhǔn)的代碼都有用到使用宏定義函數(shù)接口。拿我們比較熟悉的FreeRTOS來說,為了移植方便,使用宏定義三個中斷函數(shù),如下圖:

這里需要注意的就如上面分析的,包含關(guān)系需加上。

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

    關(guān)注

    96

    文章

    2953

    瀏覽量

    70686
  • USART
    +關(guān)注

    關(guān)注

    1

    文章

    202

    瀏覽量

    33338
  • 宏定義
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    SMA彎母頭接口定義與安裝說明

    本文詳細(xì)介紹SMA彎母頭接口定義與安裝說明,涵蓋結(jié)構(gòu)特點、安裝方式及注意事項,幫助工程師正確選型與安裝SMA彎母頭,提升射頻系統(tǒng)穩(wěn)定性。
    的頭像 發(fā)表于 02-09 13:50 ?934次閱讀
    SMA彎母頭<b class='flag-5'>接口</b><b class='flag-5'>定義</b>與安裝說明

    請問CW32F030的硬件注意事項有哪些?

    CW32F030的硬件注意事項有哪些
    發(fā)表于 12-25 08:20

    請問IAP功能升級流程中有哪些注意事項?

    IAP 功能升級流程中有哪些注意事項?
    發(fā)表于 12-23 07:55

    BNC轉(zhuǎn)接頭接線注意事項

    本文從工程角度總結(jié)BNC轉(zhuǎn)接頭接線過程中的關(guān)鍵注意事項,涵蓋阻抗匹配、接線規(guī)范、工藝選擇及檢測要點,幫助用戶避免常見接線問題。
    的頭像 發(fā)表于 12-19 14:04 ?646次閱讀
    BNC轉(zhuǎn)接頭接線<b class='flag-5'>注意事項</b>

    迅為RK3588開發(fā)板Android系統(tǒng)燒寫及注意事項

    迅為RK3588開發(fā)板Android系統(tǒng)燒寫及注意事項
    的頭像 發(fā)表于 12-03 15:17 ?7439次閱讀
    迅為RK3588開發(fā)板Android系統(tǒng)燒寫及<b class='flag-5'>注意事項</b>

    驅(qū)動板PCB布線的注意事項

    PCB Layout 注意事項 1)布局注意事項: ●● 整體布局遵循功率回路與小信號控制回路分開布局原則,功率部分和控制部分的 GND 分開回流到輸入 GND。 ●● 芯片的放置方向優(yōu)先考慮驅(qū)動
    發(fā)表于 12-02 07:40

    CW32F030在使用中的注意事項有哪些?

    CW32F030在使用中的注意事項有哪些?
    發(fā)表于 11-18 06:20

    emWin AppWizard 開發(fā)注意事項有哪些?

    emWin AppWizard 開發(fā)注意事項
    發(fā)表于 09-04 06:18

    別讓這些細(xì)節(jié)毀了PCBA!焊接注意事項清單

    一站式PCBA加工廠家今天為大家講講PCBA加工中電子元器件焊接注意事項有哪些?PCBA加工中電子元器件焊接注意事項。 電子元器件焊接關(guān)鍵注意事項 在PCBA加工中,焊接工藝直接影響電路板的可靠性
    的頭像 發(fā)表于 07-23 09:26 ?1526次閱讀

    sc接口光纖安裝方法和注意事項

    SC接口光纖的安裝方法主要涉及光纖端面處理、連接器安裝以及連接后的測試,以下是詳細(xì)的安裝步驟和注意事項: 一、準(zhǔn)備工作 工具與材料: 光纖剝線鉗:用于剝除光纖外層涂覆層。 光纖切割刀:保證光纖端面
    的頭像 發(fā)表于 06-19 10:15 ?2295次閱讀

    第十章 W55MH32中斷應(yīng)用概覽

    本章講述了W55MH32中斷應(yīng)用,涵蓋異常類型、NVIC介紹、優(yōu)先級定義與分組,闡述中斷編程三要點(使能中斷、配置 NVIC、編寫服務(wù)函數(shù)
    的頭像 發(fā)表于 05-22 17:07 ?2081次閱讀
    第十章 W55MH32<b class='flag-5'>中斷</b>應(yīng)用概覽

    美國Odyssey奧德賽電池充電注意事項全解析

    Odyssey奧德賽電池充電注意事項全解析 奧德賽電池作為高性能的深循環(huán)鉛酸電池,廣泛應(yīng)用于汽車啟動、摩托車、船舶以及備用電源系統(tǒng)中。正確的充電方法不僅能夠延長電池壽命,還能保障其性能穩(wěn)定發(fā)揮
    的頭像 發(fā)表于 05-19 16:31 ?1306次閱讀
    美國Odyssey奧德賽電池充電<b class='flag-5'>注意事項</b>全解析

    IGBT器件的防靜電注意事項

    IGBT作為功率半導(dǎo)體器件,對靜電極為敏感。我將從其靜電敏感性原理入手,詳細(xì)闡述使用過程中防靜電的具體注意事項與防護(hù)措施,確保其安全穩(wěn)定運行。
    的頭像 發(fā)表于 05-15 14:55 ?2213次閱讀

    手機喇叭氣密性檢測儀的注意事項

    使用手機喇叭氣密性檢測儀的注意事項包括以下幾點:一、使用前注意事項仔細(xì)閱讀手機喇叭氣密性檢測儀的使用說明書,了解設(shè)備的操作方法和注意事項。檢查氣密性檢測儀的各部件是否完好,包括壓力表、傳感器、連接
    的頭像 發(fā)表于 05-15 13:38 ?913次閱讀
    手機喇叭氣密性檢測儀的<b class='flag-5'>注意事項</b>

    設(shè)置射頻網(wǎng)絡(luò)分析儀的測試條件有哪些注意事項

    射頻網(wǎng)絡(luò)分析儀(VNA)的測試條件設(shè)置直接影響測量結(jié)果的準(zhǔn)確性和可靠性。以下從儀器配置、被測器件(DUT)特性、環(huán)境干擾、校準(zhǔn)與驗證四個維度,系統(tǒng)梳理關(guān)鍵注意事項及解決方案。一、儀器配置與參數(shù)設(shè)置
    發(fā)表于 05-06 16:02
    秦皇岛市| 钦州市| 鄯善县| 蒙城县| 汕头市| 临夏县| 宁强县| 江口县| 翁源县| 年辖:市辖区| 仁怀市| 临泉县| 平谷区| 武清区| 镶黄旗| 江陵县| 镇赉县| 泰和县| 什邡市| 襄汾县| 土默特右旗| 汤原县| 讷河市| 武强县| 蕉岭县| 越西县| 武功县| 杭锦旗| 电白县| 苍南县| 石门县| 抚州市| 乐至县| 绵竹市| 卓资县| 江门市| 阳谷县| 牡丹江市| 凤城市| 米易县| 绍兴县|