初學(xué)STM32,在RealView MDK 環(huán)境中使用STM32固件庫(kù)建立工程時(shí),初學(xué)者可能會(huì)遇到編譯不通過的問題。出現(xiàn)如下警告或錯(cuò)誤提示:
warning: #223-D: function "assert_param" declared implicitly;assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
這時(shí)候我們需要在“Target Options”中的“C/C++”選項(xiàng)卡中如圖-2所示紅框中添加USE_STDPERIPH_DRIVER、STM32F10X_HD。這樣才能使編順利通過。
圖-2
知其然了,我們還得知其所以然。下面就聽Herison給大家一一道來。我們知道,程序的執(zhí)行是從“main.c”文件開始的,其中必須包含有頭文件“stm32f10x.h”。我們打開“stm32f10x.h”,按下“Ctrl+F”鍵,查找USE_STDPERIPH_DRIVER,在“Find What”欄中輸入“USE_STDPERIPH_DRIVER”。如圖-3所示。點(diǎn)擊“Find Next”,出現(xiàn)“USE_STDPERIPH_DRIVER”對(duì)應(yīng)的代碼行,重復(fù)上邊操作三次,第三次的時(shí)候我們能在第8296-8298行找到如圖-4所示代碼段。
圖-3
圖-4
這段代碼的意思是,只有用預(yù)編譯指令預(yù)定義了“USE_STDPERIPH_DRIVER”,才會(huì)將"stm32f10x_conf.h"包含進(jìn)“stm32f10x.h”中,從而被"main.c"用到。這就解釋了,為什么我們沒有在“main.c”中包含"stm32f10x_conf.h",而在編譯之后卻被包含進(jìn)了"main.c"中,出現(xiàn)如圖-5所示的情況。
"stm32f10x_conf.h"文件相當(dāng)于一個(gè)開關(guān)文件,如果要用到STM32固件庫(kù)驅(qū)動(dòng)標(biāo)準(zhǔn)外設(shè),則外設(shè)驅(qū)動(dòng)頭文件是必不可少的,如“stm32f10x_gpio.h”。
在"stm32f10x_conf.h"中我們通過代碼#include "stm32f10x_gpio.h"來實(shí)現(xiàn)這個(gè)操作。
圖-5
說到這兒估計(jì)大家已經(jīng)對(duì)“USE_STDPERIPH_DRIVER”的來龍去脈有個(gè)清晰的認(rèn)識(shí)了吧?其實(shí)單從字面意思理解就是“使用標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)”,在C/C++預(yù)定義中加入“USE_STDPERIPH_DRIVER”就是允許“使用標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)”了。至于加入的“STM32F10X_HD“同樣能在文件”stm32f10x.h“通過如上所述的方法通過功能查找來進(jìn)行解釋,其實(shí)它也是對(duì)于對(duì)應(yīng)硬件的某些定義起開關(guān)作用罷了。
上一篇:使用notepad++作為keil的外部編輯器
下一篇:關(guān)于keil5使用注意事項(xiàng)(預(yù)定義、路徑包含)
推薦閱讀
史海拾趣
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- RISC-V人才該怎么培養(yǎng)?專家這樣說
- 割草機(jī)器人,四大流派的巔峰之戰(zhàn)
- 車載顯示迎來三大革命丨“形態(tài)”革命
- 什么是“CDC+空懸”?
- 汽車電子信息安全:如何有效保護(hù)硬件Debug口?
- 新能源汽車核心技術(shù)之“大三電”、“小三電”
- 芯原如何推動(dòng)RISC-V嵌入式軟件人才發(fā)展?
- Arm 技術(shù)助力《國(guó)家地理》探險(xiǎn)家繪制地球海洋圖景
- Arm SME2 技術(shù)加速安卓 AI 升級(jí),驅(qū)動(dòng)移動(dòng)應(yīng)用下一代功能革新
- VGA接口定義、功能用途和種類
- 有獎(jiǎng)直播:是德科技高速芯片設(shè)計(jì)新技術(shù)研討會(huì)
- 邀請(qǐng)小伙伴一起學(xué)AM437x,好禮有你!
- TI 樣片免費(fèi)申請(qǐng),曬樣片贏好禮☞2
- 【答題有禮】了解PI推出的全新LinkSwitch-XT2離線反激式開關(guān)電源IC產(chǎn)品系列
- TI 工業(yè)知識(shí)挑戰(zhàn)賽開啟,一起爭(zhēng)霸前20強(qiáng),贏取屬于你的榮耀!
- 【TI 嵌入式研討會(huì)集錦】小站添加了很多新內(nèi)容,歡迎提貨!
- STM32F413 Nucle-144駕到,要測(cè)評(píng)速速來!
- TI直播| 低功耗技術(shù)在 Wi-Fi 攝像頭及 PIR 紅外傳感器設(shè)計(jì)中的應(yīng)用
- 村田在線課堂:移動(dòng)篇
- STM32_外部中斷之按鍵控制點(diǎn)亮LED燈
- 【stm32f407】外部中斷實(shí)現(xiàn)按鍵中斷方式
- STM32 外設(shè)中斷配置流程
- STM32 外部GPIO中斷配置
- STM32中斷配置
- 分析師:聚焦3D感測(cè)供應(yīng)鏈再被點(diǎn)名
- 白宮經(jīng)濟(jì)顧問:中興可恢復(fù)業(yè)務(wù) 但不能躲過處罰
- HMD獲得1億美元投資,成新獨(dú)角獸公司
- 諾基亞手機(jī)制造商HMD融資1億美元,估值超10億美元
- 聯(lián)想回應(yīng)投票“反對(duì)預(yù)裝國(guó)產(chǎn)操作系統(tǒng)”
- 磁環(huán)和磁芯有哪些差異?低磁環(huán)和高磁環(huán)用在什么情況?
- 求助:!verilog 語(yǔ)言中one 是什么意思呢? 代碼如下
- 訂制較大容量的內(nèi)核
- 物聯(lián)網(wǎng)無線通信數(shù)傳模塊:多主機(jī)網(wǎng)關(guān)工作模式,一文看懂
- 一個(gè)中斷嵌套的思考
- 有誰又使用過lm3s6911么?
- 申請(qǐng)MSP-EXP430FR5739實(shí)驗(yàn)板套件
- SAEJ1939與SJA1000
- 青越鋒功能介紹——完善的淚滴處理功能
- 【RT-Thread讀書筆記】——線程的定義與線程切換的實(shí)現(xiàn)