国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FreeRTOS學(xué)習(xí)之路,以STM32F103C8T6為實(shí)驗(yàn)MCU(序章——淺談單片機(jī)以及FreeRTOS)

這篇具有很好參考價(jià)值的文章主要介紹了FreeRTOS學(xué)習(xí)之路,以STM32F103C8T6為實(shí)驗(yàn)MCU(序章——淺談單片機(jī)以及FreeRTOS)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

學(xué)習(xí)之路主要為FreeRTOS操作系統(tǒng)在STM32F103(STM32F103C8T6)上的運(yùn)用,采用的是標(biāo)準(zhǔn)庫編程的方式,使用的IDE為KEIL5。

注意!??!本學(xué)習(xí)之路可以通過購買STM32最小系統(tǒng)板以及部分配件的方式進(jìn)行學(xué)習(xí),也可以通過Proteus仿真的方式進(jìn)行學(xué)習(xí)。

后續(xù)文章會(huì)同時(shí)發(fā)表在個(gè)人博客(jason1016.club)、CSDN;

視頻會(huì)發(fā)布在bilibili(UID:399951374)

FreeRTOS學(xué)習(xí)之路,以STM32F103C8T6為實(shí)驗(yàn)MCU(序章——淺談單片機(jī)以及FreeRTOS)

作者的話:

????????相信大家在學(xué)習(xí)完STM32的裸機(jī)開發(fā)后,滿懷信心地去寫一個(gè)龐大的項(xiàng)目的時(shí),寫到后期總會(huì)感覺,各個(gè)模塊的任務(wù)總是會(huì)相互制約和影響,存在絕對(duì)的先后順序關(guān)系(也稱為輪詢方法),即使在系統(tǒng)中以中斷優(yōu)先應(yīng)對(duì)突發(fā)任務(wù)(前后臺(tái)模式)也不是辦法,一來是中斷內(nèi)的程序不能太復(fù)雜,最后只標(biāo)志事件然后再主函數(shù)重新運(yùn)行;二來是頻繁進(jìn)中斷也不是辦法吧。

? ? ? ? 這里舉一個(gè)例子:我給單片機(jī)設(shè)置了

  • (1) 一個(gè)每三秒需要通過MQTT協(xié)議將傳感器收集到的溫濕度數(shù)據(jù)上傳到服務(wù)器的任務(wù)
  • (2) 此為我還設(shè)置了系統(tǒng)需要通過光度傳感器監(jiān)測(cè)光強(qiáng)閾值控制燈的開關(guān)
  • (3) 設(shè)置OLED屏幕實(shí)時(shí)顯示時(shí)鐘。
  • (4) 控制LED呼吸燈,每5s執(zhí)行一次翻轉(zhuǎn)操作

????????那我在編寫程序的時(shí)候就會(huì)遇到許多問題:

  • 上述第一個(gè)和第二個(gè)任務(wù)應(yīng)該寫在中斷還是掛起標(biāo)志位再在輪詢主函數(shù)中執(zhí)行呢?
  • 假設(shè)在中斷中,那中斷的執(zhí)行事件會(huì)不會(huì)太復(fù)雜
  • 假設(shè)在任務(wù)中,當(dāng)任務(wù)多起來,每次單片機(jī)需要完整執(zhí)行一次輪詢周期太長,會(huì)不會(huì)導(dǎo)致數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性得到損失甚至導(dǎo)致數(shù)據(jù)丟包
  • 當(dāng)我們使用delay等待函數(shù)的時(shí)候是不是會(huì)導(dǎo)致系統(tǒng)“沒事干”導(dǎo)致CPU資源白白浪費(fèi)掉了

????????因此我們開始學(xué)習(xí)嘗試了解以操作系統(tǒng)去解決上述的問題。那么我們應(yīng)該移植什么操作系統(tǒng)呢?通過了解STM32F103適配的主流系統(tǒng)有μC/OS-II、eCos、FreeRTOS、都江堰操作系統(tǒng)等操作系統(tǒng)。而其中FreeRTOS以開源、免費(fèi)而著名,所以我們?cè)趯W(xué)習(xí)單片機(jī)就自然而然地FreeRTOS作為首選了。

FreeRTOS學(xué)習(xí)之路,以STM32F103C8T6為實(shí)驗(yàn)MCU(序章——淺談單片機(jī)以及FreeRTOS)

? ? ? ? 好了,跟大家賣了這么久關(guān)子,也不好再吊著大家了,接下來我就是直入主題了?。。?/p>

什么是操作系統(tǒng)?

? ? ? ? 這里相信很多教程都講過了,但是這里我想和大家聊聊我的看法!

? ? ? ? 首先我們要先知道操作系統(tǒng)的主體是誰,操作系統(tǒng)是為誰服務(wù)的?操作系統(tǒng)的服務(wù)受眾群體從始至終都只有一個(gè),那就是單片機(jī)。

????????對(duì)于單片機(jī)是什么,我這里分享一個(gè)我個(gè)人很喜歡的理解模式,(以STM32F103為例)我們把單片機(jī)比作一個(gè)人,那他的內(nèi)核就是他的小腦瓜;晶振就是他的心跳;外設(shè)就是他的五感,SRAM和FLASH就是他的記憶系統(tǒng),總線協(xié)議就是他的血管,那這樣是不是就可以將單片機(jī)轉(zhuǎn)化成一個(gè)活生生的人了呢。

????????既然都把他比作一個(gè)人了,那我們不妨把單片機(jī)的各個(gè)運(yùn)行模式轉(zhuǎn)化為一個(gè)人思維方式進(jìn)階。首先裸機(jī)開發(fā)模式,就是這個(gè)孩童的階段,這個(gè)時(shí)候單片機(jī)還不懂怎么合理分配自己的時(shí)間:只知道到了早上要先刷牙,然后洗臉,最后再吃早飯,但是針對(duì)突發(fā)情況,比如今天天牙膏沒了那咋辦?單片機(jī)就不會(huì)處理了,就傻傻地站在洗漱池前等刷牙,等牙膏來了(輪詢模式);

然后就是前后臺(tái)系統(tǒng)模式了,等你年紀(jì)再大點(diǎn),步入了幼年時(shí)期,可以聽得懂父母的話,在上述處理事情的模式上,又學(xué)會(huì)了聽爸爸媽媽的話,當(dāng)父母喊你去做什么事情的時(shí)候,你總會(huì)樂呵呵地拋下手里的所有事情去聽爸爸媽媽喊你知道你一會(huì)要去做什么(中斷),然后再先把爸爸媽媽安排的工作插入上述的輪詢進(jìn)程任務(wù)中,到時(shí)間了再處理得當(dāng)(主程序執(zhí)行事件)。這樣要是媽媽說她馬上要出門了,喊你幫忙拿車鑰匙,你還傻傻地先刷牙洗臉吃早餐再給媽媽送過去,估計(jì)媽媽得氣死。

最后就到了多任務(wù)系統(tǒng)了,單片機(jī)度過稚嫩的幼年時(shí)期,到了青年時(shí)期有了屬于自己的一套做人方式和行為準(zhǔn)則,當(dāng)然青年時(shí)期屬于叛逆時(shí)期,不同單片機(jī)的發(fā)展差異就在于他解除了什么學(xué)習(xí)了什么(而這里我把這件事稱為移植了什么系統(tǒng)),而我們就單獨(dú)將學(xué)會(huì)了FreeRTOS的單片機(jī)小朋友提出來舉例了,這位小朋友他就學(xué)會(huì)了:

  • 把要做的事情都分成一個(gè)個(gè)任務(wù),然后重要的事情先做(任務(wù)調(diào)度器按任務(wù)優(yōu)先級(jí)調(diào)度)。
  • 在別的任務(wù)等待的時(shí)候可以做別的事情,比如你在煲熱水,等水沸騰的時(shí)候就可以做別的事情啦。(任務(wù)調(diào)度器任務(wù)切換)
  • 合理運(yùn)用自己的記憶力(heap_4內(nèi)存分配)
  • ......

????????當(dāng)然上述說到的三個(gè)階段,都是基于單片機(jī)是人的基礎(chǔ)實(shí)現(xiàn)的,賦予了他思考的能力。相信大家都知道,人類之所以區(qū)別于野獸,是在于其能思考的能力,而思考的依托就是我們發(fā)達(dá)的大腦,這是由我們的基因決定的。就像單片機(jī)為什么可以被賦予操作系統(tǒng)(思考能力)呢?其決定性因素就在于其的一個(gè)根本內(nèi)核——ARM內(nèi)核,以STM32F103C8T6為例,其內(nèi)核為cortex-M3,他的這個(gè)內(nèi)核就是他的遺傳下來的大腦,從本質(zhì)來講是他的這個(gè)大腦支持他思考,所以操作系統(tǒng)的誕生不是ARM的一個(gè)發(fā)展產(chǎn)物,而是ARM的一個(gè)原生產(chǎn)物。其實(shí)在cortex-M3,M4內(nèi)核中,也早就為接收操作系統(tǒng)預(yù)留了一系列的配置,而不同的操作系統(tǒng),只是單片機(jī)在發(fā)展過程中遇到的不同的事發(fā)生的轉(zhuǎn)變。

????????可能有點(diǎn)繞,所以我就喜歡用一個(gè)很有深度的話來解析:決定一個(gè)人的由兩個(gè)因素,一個(gè)是他的基因,一個(gè)是他的經(jīng)歷。單片機(jī)同樣如此,決定其本質(zhì)的是他的出廠硬件(內(nèi)核和外設(shè)),而決定其思考方式的,就是他的一個(gè)操作系統(tǒng)了。

  • 我們無法決定我們的基因,但是其實(shí)我們的基因賦予了可以思考的能力,我們可以通過不同思考方式,在基因固定的情況下,達(dá)到更高的成就。
  • 單片機(jī)同樣無法決定他的內(nèi)核,外設(shè)等硬件,但是其實(shí)單片機(jī)的內(nèi)核賦予了其可以移植操作系統(tǒng)的能力,其同樣可以通過移植不同的操作系統(tǒng),在硬件固定的情況下,實(shí)現(xiàn)更多的功能以及減少更多的功耗。

FreeRTOS學(xué)習(xí)之路,以STM32F103C8T6為實(shí)驗(yàn)MCU(序章——淺談單片機(jī)以及FreeRTOS)

?相信聊到這里,大家大概了就了解了單片機(jī)和操作系統(tǒng)的關(guān)系了,操作系統(tǒng)就是單片機(jī)的思考和處理事情的方式,可能網(wǎng)上很多都有介紹Linux操作系統(tǒng)、FreeRTOS操作系統(tǒng),但是相信大家看完這么多介紹都是似懂非懂的。在我看來,操作系統(tǒng)的定義應(yīng)該泛定義到單片機(jī)的執(zhí)行事件的一個(gè)模式,無論是裸機(jī)還是前后端,多任務(wù)都是一個(gè)完整的操作系統(tǒng)(這里是作者個(gè)人臆想的,要是錯(cuò)了歡迎指正)。

學(xué)習(xí)之路安排

? ? ? ? 這條學(xué)習(xí)之路會(huì)以STMF103C8T6為MCU,在上面移植FreeRTOS操作系統(tǒng),并且逐層解析FreeRTOS實(shí)時(shí)操作系統(tǒng)。最終希望都可以掌握FreeRTOS實(shí)時(shí)操作系統(tǒng),并且可以以此為基礎(chǔ)做出來很多實(shí)戰(zhàn)項(xiàng)目。

寄望與自勉

很喜歡那句話,種一顆樹最好的時(shí)間是10年前,其次就是今天!愿今日的你成就明日的你。就像我個(gè)人博客主頁寫的那句話一樣:

你終將成為你想成為的人
愿你在通往成功的路上
不再孤身一人

本文為作者獨(dú)立編寫,本BLOG上所有的原創(chuàng)文章未經(jīng)本人許可,不得用于商業(yè)用途及傳統(tǒng)媒體。網(wǎng)絡(luò)媒體轉(zhuǎn)載請(qǐng)注明出處,否則屬于侵權(quán)行為。文章來源地址http://www.zghlxwxcb.cn/news/detail-460126.html

到了這里,關(guān)于FreeRTOS學(xué)習(xí)之路,以STM32F103C8T6為實(shí)驗(yàn)MCU(序章——淺談單片機(jī)以及FreeRTOS)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Stm32f103c8t6(proteus仿真)學(xué)習(xí)——3.按鍵控制LED燈

    Stm32f103c8t6(proteus仿真)學(xué)習(xí)——3.按鍵控制LED燈

    按鍵:button 電阻:res 先配置LED燈的GPIO 編寫LED亮滅的函數(shù) 實(shí)現(xiàn)按下按鍵LED燈的狀態(tài)取反 led.c總代碼 先配置按鍵的GPIO 獲取當(dāng)前按鍵鍵值的函數(shù) key.c總代碼 5.1 按鍵按下實(shí)現(xiàn)LED亮或者滅 仿真效果圖: 5.2 按鍵按下實(shí)現(xiàn)LED狀態(tài)取反 仿真效果圖: 百度網(wǎng)盤 鏈接:https://pan.baidu.co

    2024年02月07日
    瀏覽(22)
  • Stm32f103c8t6(proteus仿真)學(xué)習(xí)——1.點(diǎn)亮LED流水燈

    Stm32f103c8t6(proteus仿真)學(xué)習(xí)——1.點(diǎn)亮LED流水燈

    軟件準(zhǔn)備:keil uVsion 5 和 proteus 8.15 打開proteus8.15 - 新建項(xiàng)目 - 改名 - 一直next 鼠標(biāo)右鍵 - 放置 - 元件 - From Libraries 搜索Stm32 - 選擇stm32f103c8 畫出點(diǎn)亮一個(gè)LED燈的原理圖 提示,各元器件搜索: 主控芯片:stm32 電阻:res LED燈:led 鼠標(biāo)右鍵 - 放置 - 元件 - From Libraries 地和VCC 在左側(cè)

    2024年02月08日
    瀏覽(23)
  • 舵機(jī)控制(STM32F103C8T6)

    舵機(jī)控制(STM32F103C8T6)

    ? ? ? ? 本文是以 STM32F103C8T6 作為主控芯片,通過PB6端口輸出PWM,實(shí)現(xiàn)控制180°舵機(jī)。 (一)概述 ? ? ? ? 舵機(jī)是一種位置伺服驅(qū)動(dòng)器器,是一種帶有輸出軸的小裝置。當(dāng)我們向伺服器發(fā)送一個(gè)控制信號(hào)時(shí),輸出軸就可以轉(zhuǎn)到特定的位置。只在控制信號(hào)持續(xù)不變,伺服機(jī)構(gòu)就

    2023年04月09日
    瀏覽(25)
  • 功耗測(cè)評(píng) | STM32F103C8T6

    功耗測(cè)評(píng) | STM32F103C8T6

    STM32F103C8T6 MCU越來越廣泛的應(yīng)用在生產(chǎn)生活的各個(gè)領(lǐng)域,外接豐富的傳感器、功能模塊、通信模塊、顯示存儲(chǔ)等可以形成各種可樣的產(chǎn)品項(xiàng)目應(yīng)用。對(duì)于功耗要求比較高的產(chǎn)品,一般會(huì)選擇STM32L系列的MCU,但是從功耗的評(píng)測(cè)角度,邏輯上是基本相似的。 在很多應(yīng)用場(chǎng)合中都對(duì)

    2024年02月07日
    瀏覽(31)
  • STM32F103C8T6系統(tǒng)板

    STM32F103C8T6系統(tǒng)板

    1.電源部分 2.復(fù)位 3.晶振 4. 電源電路——防反接 有關(guān)二極管 漫談二極管防電源反接電路 本次采用上圖右下角的NMOS防反接電路。 電源電路——電源芯片 AMS1117是AMS公司的 ,LM1117是NS(美國國家半導(dǎo)體)的,LM1117要貴很多,所以一般的用AMS1117就可以了。 (以下分析參考STM32F10

    2024年02月02日
    瀏覽(20)
  • STM32F103C8T6板子介紹

    STM32F103C8T6板子介紹

    STM32簡(jiǎn)介 STM32是ST公司基于ARM Cortex-M內(nèi)核開發(fā)的32位微控制器 STM32常應(yīng)用在嵌入式領(lǐng)域,如智能車、無人機(jī)、機(jī)器人、無線通信、物聯(lián)網(wǎng)、工業(yè)控制、娛樂電子產(chǎn)品等 STM32功能強(qiáng)大、性能優(yōu)異、片上資源豐富、功耗低,是一款經(jīng)典的嵌入式微控制器。 ?STM32F103C8T6 F1XX片上資源

    2024年02月11日
    瀏覽(22)
  • STM32F103C8T6串口通信

    STM32F103C8T6串口通信

    ? 首先來看一下需要操作的函數(shù),以及配置的步驟: 圖1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖2?? Code: usart.c #include \\\"usart.h\\\" void ustart_Init(void ) { GPIO_InitTypeDef GPIO_Init_Ustar ; // 定義輸出端口TX的結(jié)構(gòu)體對(duì)象 USART_InitTypeDef USTART_Init; // 定義串口初始化結(jié)構(gòu)體對(duì)象

    2024年02月16日
    瀏覽(28)
  • [STM32F103C8T6]ADC轉(zhuǎn)換

    [STM32F103C8T6]ADC轉(zhuǎn)換

    什么是ADC轉(zhuǎn)換? ADC轉(zhuǎn)換的全稱是: Analog-to-Digital Converter ,指模擬 / 數(shù)字轉(zhuǎn)換器 ADC的性能指標(biāo): ADC分辨率: SSA與VREF-一起接到地,DDA與VREF+接到3.3v,所以ADC轉(zhuǎn)換的范圍是0---3.3v 所以最后的ADC轉(zhuǎn)換值應(yīng)該是我們的測(cè)量值*分辨率? ? 分辨率 = 3.3v/2^12 = (3.3/4096)? ?12位的轉(zhuǎn)換器所

    2024年02月06日
    瀏覽(26)
  • STM32F103C8T6 按鍵掃描輸入

    STM32F103C8T6 按鍵掃描輸入

    第一章 STM32F103C8T6 點(diǎn)亮LED燈 系列文章目錄 前言 一、原理 ?1.按鍵類型 ?2.按鍵消抖 3.IO口輸入配置 1)模擬輸出 2)浮空輸入模式 3)下拉輸入模式(PULL DOWN) 4)上拉輸入模式(PULL UP) 二、代碼部分 main.c key.c key.h 總結(jié) ? ? ? ? 上一章我們成功入門了STM32F103C8T6,今天我們來

    2023年04月23日
    瀏覽(30)
  • stm32f103c8t6的外部中斷

    stm32f103c8t6的外部中斷

    在單片機(jī)中存在著中斷系統(tǒng),這個(gè)系統(tǒng)的邏輯和功能在51單片機(jī)中已經(jīng)有所了解。 1.在32單片機(jī)中的內(nèi)核有一個(gè)nvic 里面存放許多優(yōu)先級(jí)的設(shè)定,外接許多中斷源,比如“exti、tim、adc、usart等”接入之后,nvic再通過中斷優(yōu)先級(jí)進(jìn)行排隊(duì),再內(nèi)接入cpu中進(jìn)行處理,這樣子大大減少

    2024年02月09日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包