一、使用場(chǎng)景
第一種情況,在使用普通 STM32 延遲函數(shù),類似于 HAL_Delay(time),由于該函數(shù)是使用循環(huán)去判斷及延時(shí)的,所以在執(zhí)行該函數(shù)時(shí)整個(gè)程序會(huì)在此處等待定時(shí)器的中斷服務(wù)函數(shù)修改參量使得循環(huán)判決條件不成立,從而繼續(xù)程序的執(zhí)行,同時(shí)也達(dá)到延遲時(shí)間的效果。由于使用的是系統(tǒng)的定時(shí)器進(jìn)行延遲,所以時(shí)間相對(duì)準(zhǔn)確。
第二種情況,當(dāng)需要周期性的執(zhí)行一個(gè)任務(wù)時(shí),將這個(gè)函數(shù)放在某個(gè)定時(shí)器的中斷服務(wù)函數(shù)里,設(shè)置好定時(shí)器的時(shí)間,完成時(shí)產(chǎn)生中斷,從而進(jìn)入中斷服務(wù)函數(shù)執(zhí)行該函數(shù)。此時(shí),MCU 執(zhí)行中斷程序,只有更高優(yōu)先級(jí)的中斷才能打斷當(dāng)前執(zhí)行的中斷服務(wù)函數(shù),進(jìn)入更高優(yōu)先級(jí)的中斷服務(wù)函數(shù)去執(zhí)行。需要等所有中斷服務(wù)函數(shù)都執(zhí)行完成,才會(huì)退回到主函數(shù)。
第三鐘情況,而結(jié)合定時(shí)器以及相應(yīng)的標(biāo)志位,直接在主函數(shù)中達(dá)到周期任務(wù)的效果。原理如下:
1、設(shè)置一個(gè)全局的標(biāo)志位flag,初值為 0。
2、在SysTick定時(shí)器的中斷服務(wù)函數(shù)中,周期性地對(duì)改標(biāo)志位置 1。
3、主函數(shù) while(1)中,只要使用if(flag){}去判斷條件是否滿足,滿足則執(zhí)行,不滿足則跳過(guò)。
第三種情況和第二鐘情況的主要區(qū)別在于,第三種情況的周期任務(wù)函數(shù)是在主函數(shù)中執(zhí)行的,而第二種則是在中斷服務(wù)函數(shù)里執(zhí)行的。使用第二種方式去執(zhí)行周期任務(wù),程序上可能會(huì)更好理解一些;使用第三種方式,則在編寫程序時(shí)更簡(jiǎn)便一點(diǎn)。
這三種情況的使用場(chǎng)景不一樣,第一種是使用 CPU 空操作的方式來(lái)延遲固定時(shí)間,保證通信時(shí)序正確;第二種使用中斷的方式適用于比較重要的周期任務(wù),保證周期準(zhǔn)確;第三種則適用于周期不那么重要,只要在 while(1)循環(huán)中,任務(wù)函數(shù)不斷地進(jìn)行 if(flag)的判斷,滿足就執(zhí)行。
二、代碼演示
while (1)
{
BSP_LED_On(LED1);
#if 1 //演示1,普通延時(shí)函數(shù) 5s打印一次時(shí)間和follow on
printf_time();
HAL_Delay(1000); //延時(shí)1000ms
printf("follow on \n ");
#else //演示2,周期任務(wù) 1s打印一次時(shí)間,5s打印一次follow on
printf_time();
HAL_Delay(1000);
Sys_Delay(5000);
if(flag)
{
flag = 0;
printf("follow on \n");
}
#endif
}
printf_time()函數(shù)就是將 MCU RTC 中的時(shí)間通過(guò)串口打印出來(lái),而HAL_Delay()就是普通的延時(shí)函數(shù),Sys_Delay()是用于設(shè)置第三種方式中所提的定時(shí)任務(wù)的周期,代碼如下:
void Sys_Delay(uint32_t time)
{
Cycle_Time = time;
}
而中斷服務(wù)函數(shù)的代碼如下:
void SysTick_Handler(void)
{
HAL_IncTick();
T1msCount++;
if(T1msCount>Cycle_Time)
{
T1msCount = 0;
flag = 1;
}
}
該中斷每 1ms 產(chǎn)生一次,對(duì)計(jì)數(shù)值T1msCount進(jìn)行加 1,當(dāng)大于周期時(shí)間時(shí),清零,并對(duì)標(biāo)志位賦 1,此后主函數(shù)中if(flag)成立,對(duì)標(biāo)志位清零,并執(zhí)行其中的周期任務(wù)。
圖一對(duì)于主函數(shù)中演示 1,代表延遲一秒,打印時(shí)間及“follow on”,
圖二對(duì)應(yīng)主函數(shù)在 #if 0 時(shí)的演示2,代表延遲一秒打印一次時(shí)間,打印”follow on”的周期為5秒。
上一篇:STM32F429 Discovery FMC驅(qū)動(dòng)原子4.3寸LCD
下一篇:STM32F4 Discovery USB HID 用到的文件圖解
推薦閱讀
史海拾趣
Altera是一家以FPGA(可編程邏輯器件)和相關(guān)技術(shù)為主的半導(dǎo)體公司,于1983年成立于美國(guó)加利福尼亞州的圣塔克拉拉。以下是關(guān)于Altera公司發(fā)展的五個(gè)相關(guān)故事:
成立與早期發(fā)展:Altera公司由Robert Hartmann和Michael Magranet等人創(chuàng)立,最初以設(shè)計(jì)和制造EEPROM(可擦除可編程只讀存儲(chǔ)器)為主。1984年,Altera推出了全球第一個(gè)可編程邏輯器件EP300系列,開創(chuàng)了FPGA行業(yè)。隨后,Altera不斷擴(kuò)大產(chǎn)品線,致力于FPGA技術(shù)的研發(fā)和推廣。
FPGA技術(shù)創(chuàng)新:Altera在FPGA技術(shù)方面持續(xù)進(jìn)行創(chuàng)新,推出了一系列新產(chǎn)品和技術(shù)。1992年,公司推出了第一個(gè)基于SRAM(靜態(tài)隨機(jī)存儲(chǔ)器)的FPGA器件,從而實(shí)現(xiàn)了更高的速度和靈活性。隨后,Altera不斷改進(jìn)器件結(jié)構(gòu)、設(shè)計(jì)工具和軟件支持,提高了產(chǎn)品性能和用戶體驗(yàn)。
與競(jìng)爭(zhēng)對(duì)手的競(jìng)爭(zhēng):在FPGA市場(chǎng),Altera與Xilinx是兩大競(jìng)爭(zhēng)對(duì)手。兩家公司在技術(shù)、產(chǎn)品性能、市場(chǎng)份額等方面展開激烈競(jìng)爭(zhēng)。為了在市場(chǎng)上取得優(yōu)勢(shì),Altera不斷加大研發(fā)投入,推出了更具競(jìng)爭(zhēng)力的產(chǎn)品,并積極開展?fàn)I銷和銷售活動(dòng)。
收購(gòu)與合并:Altera在發(fā)展過(guò)程中進(jìn)行了一系列收購(gòu)與合并,以擴(kuò)大市場(chǎng)份額和提升技術(shù)實(shí)力。2015年,英特爾公司以約160億美元的價(jià)格收購(gòu)了Altera,將其并入英特爾旗下,成為英特爾的子公司。這一收購(gòu)使英特爾獲得了Altera在FPGA領(lǐng)域的技術(shù)優(yōu)勢(shì)和市場(chǎng)份額,進(jìn)一步鞏固了英特爾在半導(dǎo)體行業(yè)的領(lǐng)先地位。
公司發(fā)展與創(chuàng)新:作為英特爾的子公司,Altera繼續(xù)發(fā)展和創(chuàng)新。公司不僅致力于FPGA技術(shù)的進(jìn)一步改進(jìn)和推廣,還在其他領(lǐng)域進(jìn)行探索和拓展,如數(shù)據(jù)中心、人工智能、物聯(lián)網(wǎng)等。Altera不斷推出新產(chǎn)品和解決方案,滿足不同行業(yè)和應(yīng)用領(lǐng)域的需求,保持了在半導(dǎo)體行業(yè)的競(jìng)爭(zhēng)優(yōu)勢(shì)。
以上是關(guān)于Altera公司發(fā)展的五個(gè)相關(guān)故事,這些故事展示了Altera從成立初期到被英特爾收購(gòu)的發(fā)展歷程,以及其在FPGA技術(shù)領(lǐng)域的技術(shù)創(chuàng)新、市場(chǎng)競(jìng)爭(zhēng)和業(yè)務(wù)拓展等方面的重要進(jìn)展。
在技術(shù)進(jìn)步的基礎(chǔ)上,ARCOLECTRIC SWITCHES公司積極拓展國(guó)內(nèi)外市場(chǎng)。公司通過(guò)與各大電子廠商建立合作關(guān)系,將產(chǎn)品廣泛應(yīng)用于家電、通訊、汽車等多個(gè)領(lǐng)域。同時(shí),公司注重品牌建設(shè),通過(guò)廣告宣傳和市場(chǎng)推廣活動(dòng)提升品牌知名度和美譽(yù)度。這些努力使得ARCOLECTRIC SWITCHES公司的市場(chǎng)份額逐年增長(zhǎng),品牌影響力不斷擴(kuò)大。
在快速發(fā)展的同時(shí),Bce Sud始終關(guān)注企業(yè)社會(huì)責(zé)任和可持續(xù)發(fā)展。公司積極參與環(huán)保、公益等活動(dòng),致力于為社會(huì)做出貢獻(xiàn)。同時(shí),公司還注重員工的培訓(xùn)與發(fā)展,為員工提供良好的工作環(huán)境和職業(yè)發(fā)展機(jī)會(huì)。這些舉措不僅提升了公司的社會(huì)形象,也為公司的長(zhǎng)遠(yuǎn)發(fā)展奠定了堅(jiān)實(shí)基礎(chǔ)。
這些故事基于一般的電子行業(yè)公司成長(zhǎng)經(jīng)歷構(gòu)建,旨在展示一個(gè)虛構(gòu)的電子行業(yè)公司如何從初創(chuàng)走向成功的過(guò)程。雖然故事中的公司名稱和具體細(xì)節(jié)是虛構(gòu)的,但其中的發(fā)展邏輯和經(jīng)驗(yàn)教訓(xùn)對(duì)于現(xiàn)實(shí)中的電子行業(yè)公司來(lái)說(shuō)仍具有一定的參考價(jià)值。
在國(guó)內(nèi)市場(chǎng)取得一定成績(jī)后,EIC公司開始將目光投向國(guó)際市場(chǎng)。公司積極參加國(guó)際電子展會(huì),與國(guó)際知名企業(yè)進(jìn)行技術(shù)交流與合作,不斷拓展海外市場(chǎng)。通過(guò)國(guó)際化戰(zhàn)略的實(shí)施,EIC的產(chǎn)品逐漸進(jìn)入了歐洲、北美等發(fā)達(dá)國(guó)家和地區(qū),并在當(dāng)?shù)亟⒘送晟频匿N售和服務(wù)網(wǎng)絡(luò)。這一過(guò)程中,EIC不僅提升了品牌影響力,也積累了豐富的國(guó)際化運(yùn)營(yíng)經(jīng)驗(yàn)。
面對(duì)國(guó)內(nèi)市場(chǎng)的飽和,AEC決定實(shí)施國(guó)際化戰(zhàn)略,拓展海外市場(chǎng)。公司首先在歐洲設(shè)立了研發(fā)中心,隨后在北美和亞洲等地建立了銷售網(wǎng)絡(luò)和生產(chǎn)基地。通過(guò)不斷優(yōu)化產(chǎn)品結(jié)構(gòu)和提升服務(wù)質(zhì)量,AEC逐漸在國(guó)際市場(chǎng)上樹立起了良好的品牌形象,成為一家具有全球影響力的電子企業(yè)。
在光學(xué)鏡片領(lǐng)域,產(chǎn)品質(zhì)量是企業(yè)的生命線。康奈特深知這一點(diǎn),因此從原材料采購(gòu)到生產(chǎn)制造的每一個(gè)環(huán)節(jié)都建立了嚴(yán)格的品控體系。公司引進(jìn)了先進(jìn)的檢測(cè)設(shè)備和技術(shù)手段,對(duì)每一片鏡片都進(jìn)行嚴(yán)格的檢測(cè)和篩選。這種對(duì)質(zhì)量的執(zhí)著追求不僅贏得了消費(fèi)者的信賴和認(rèn)可,也為公司贏得了良好的口碑和市場(chǎng)份額。
新手升級(jí)8位到32位單片機(jī),TM32與LPCl7xx哪個(gè)容易學(xué)? 新手升級(jí)8位到32位單片機(jī),TM32與LPCl7xx哪個(gè)容易學(xué)? 價(jià)格 性能 開發(fā)平臺(tái) 開發(fā)資料 轉(zhuǎn)貼一下比較: TM32 和 LPCl7xx 速度比較(基于uCOS-II平臺(tái)) 測(cè)試1 STM32平臺(tái) 72MHz--------- ...… 查看全部問答∨ |
|
PXA270核心板方案: CPU:PXA270 SDRAM:128M FLASH:32M 接口:USB、SDCARD、SERIAL等 LCD+TOUCH:3.5‘ 支持WIFI 方案可提供:SCH + PCB + BOOM + WINCE ...… 查看全部問答∨ |
求助:4線touch controller 來(lái)控制 5線panel 由於當(dāng)初沒搞清楚5線的定義,就使用了5線式PANEL 分別接在6410 CPU的touch ADC,第五線SG則接在AIN0上。 如果不透過(guò)五線式的touch controller,有辦法直接用6410 內(nèi)建4線controller 來(lái)控制嗎? … 查看全部問答∨ |
2440通常需要哪些最基本的頭文件或者ads工程通常需要包含哪些文件 對(duì)于初學(xué)者,建立一個(gè)ads的2440工程,通常需要包含哪些最基本的文件?(加入這些文件之后就能實(shí)現(xiàn)所有常見功能的那種:包括中斷,uart,ad轉(zhuǎn)換,rtc,觸摸屏等等) 另外,哪里能下載到這么全的工程… 查看全部問答∨ |
|
誰(shuí)有《Windows 2000 /XP WDM設(shè)備驅(qū)動(dòng)程序開發(fā)》電子版? 哪位兄弟有這本電子書,發(fā)給小弟看一下啊,多謝了 郵箱:guanbenben@yahoo.com.cn… 查看全部問答∨ |
尋找熟悉無(wú)線鼠標(biāo)開發(fā)的朋友,有一個(gè)類似的設(shè)備需要熟悉硬,軟件的朋友聊聊. 產(chǎn)品可能將外包給個(gè)人或公司開發(fā). 請(qǐng)和我聯(lián)系:swell_tu@hotmail.com 因?yàn)榻裉煜挛缬惺鲁鋈?所以今天晚上回復(fù)郵件.… 查看全部問答∨ |
原文參考英文版頁(yè)313/679,頁(yè)/524中文Bits 3:2 IC1PSC: Input Capture 1 Prescaler.This bit-field defines the ratio of the prescaler acting on CC1  ...… 查看全部問答∨ |
版主,我請(qǐng)教一個(gè)問題。 我用STM32F103V8的GPIOA的PA0~PA7接SRAM的數(shù)據(jù)(D0~D7) 然后做如下設(shè)置:GPIOA->CRL = 0x55555555 //01:通用開漏輸出模式,01:輸出模式,最大速度10MHz。 我在PA0~PA7加上拉1K電阻,現(xiàn)在有個(gè)問題 ...… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實(shí)惠套件和強(qiáng)大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動(dòng)Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴(kuò)展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機(jī)自啟動(dòng)
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測(cè)試
- 汽車顯示屏——第1部分:TFT LCD、OLED和micro-LED顯示屏基本原理
- 英特爾首秀上海車展:以“芯”賦能,攜手合作伙伴推動(dòng)全車智能化
- 中國(guó)首個(gè)高速L3商用解決方案!華為新一代ADS 4正式發(fā)布
- 增強(qiáng)自主移動(dòng)機(jī)器人的安全性
- Cadence 推出業(yè)界首款 12800MT/s DDR5 MRDIMM Gen2 內(nèi)存 IP 系統(tǒng)解決方案
- 消息稱英特爾本周內(nèi)公布 20%+ 大裁員計(jì)劃
- 盤點(diǎn)慕尼黑電子展上那些火熱的機(jī)器人技術(shù)和產(chǎn)品
- AI算力狂飆下的能源困局,ST如何突圍?
- 韓國(guó)研究人員開發(fā)出耐火電池電解質(zhì)以防止熱失控
- “史上最嚴(yán)電池安全令”或引發(fā)產(chǎn)業(yè)第四次大洗牌
- 試用Vishay新型“IHLP磁芯損耗計(jì)算器”,搶樓贏好禮
- LPC4370重磅來(lái)襲 有獎(jiǎng)問答贏好禮!
- 電子工程師,如何更好地?fù)肀aN?參與問卷有好禮!
- 報(bào)名贏京東卡 | 國(guó)產(chǎn)FPGA安路科技2024線上新品發(fā)布會(huì)
- 兆易GD32450I-EVAL免費(fèi)測(cè)評(píng)試用
- 追更有驚喜:解救被FSM折磨過(guò)的你,justd0解析LSM6DSOX有限狀態(tài)機(jī)官方例程
- 電路圖站2.0版上線,公開征集網(wǎng)友建議,填寫調(diào)查問卷贏積分!
- 全球首款Cortex-M23內(nèi)核物聯(lián)網(wǎng)芯片SAML10和SAM L11系列 闖關(guān)獲取SAML10/SAML11法寶,拆除電子界安全危機(jī),贏好禮!
- 邀請(qǐng)好友體驗(yàn)WEBENCH,禮品豐厚你有他也有!
- 51單片機(jī)6位數(shù)顯頻率計(jì)數(shù)器
- STC89C51和AT89S51的區(qū)別
- 8051單片機(jī)特殊功能寄存器SFR基礎(chǔ)詳解
- 醞釀5年,美團(tuán)為什么敢把重金投到無(wú)人配送的賽道上?
- 掃地機(jī)器人市場(chǎng)持續(xù)發(fā)酵,由利、云鯨等品牌以科技賦能實(shí)現(xiàn)跨越式發(fā)展
- 控制算法研發(fā):無(wú)人機(jī)可模仿自行車和汽車穿越城市
- 機(jī)器人相互教學(xué)讓知識(shí)瞬間轉(zhuǎn)移 AI迎來(lái)指數(shù)級(jí)進(jìn)化
- 控制算法研發(fā):無(wú)人機(jī)可模仿自行車和汽車穿越城市
- 哈佛大學(xué)開發(fā)硬幣大小的微型機(jī)器人,可完成人類外科顯微手術(shù)
- 深度拆解榮耀V10:讓零部件告訴你值不值得剁手