日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 工業(yè)控制 > 電路設計項目集錦
[導讀]本項目利用FreeRTOS和STM32CubeIDE,在RT- thread RT- Spark開發(fā)板上實現(xiàn)了一個簡單的實時操作系統(tǒng)(RTOS)應用。

1. 介紹

本項目利用FreeRTOS和STM32CubeIDE,在RT- thread RT- Spark開發(fā)板上實現(xiàn)了一個簡單的實時操作系統(tǒng)(RTOS)應用。

單板上運行4個并發(fā)任務(線程):

?通過AHT21傳感器在LCD上顯示溫度

?使用電位器調(diào)整RGB LED亮度

?在LCD上顯示遞增計數(shù)器

?閃爍狀態(tài)指示燈

LCD是在任務之間共享的,因此使用互斥鎖來保護獨占訪問。所有任務都在無限循環(huán)中運行,并在每次更新后延遲自己,以便其他任務可以運行。

2. 硬件和軟件要求

2.1硬件

?RT- thread RT- Spark開發(fā)板(基于stm32)

?板載1.3" 240×240 LCD (ST7789, FSMC/8080接口)

?1板載AHT2溫濕度傳感器(I2C)

?外置RGB LED

?外部電位計(連接到ADC引腳)

?板載用戶LED

?Micro USB電纜,用于電源和編程

2.2軟件

?STM32CubeIDE(用于ioc和C代碼)

?FreeRTOS(通過STM32CubeMX / CubeIDE集成)

3. 項目概述和任務設計

該應用程序使用四個FreeRTOS任務:

1.溫度顯示任務

?通過I2C從AHT21傳感器讀取溫度

?將值轉(zhuǎn)換為人類可讀的格式

?使用LCD互斥鎖安全地將溫度寫入LCD

2.RGB亮度控制任務

?使用ADC讀取電位器

?將ADC值映射到PWM占空比

?更新一個或多個通道的RGB LED改變亮度

3.計數(shù)器顯示任務

?維護一個遞增的整數(shù)計數(shù)器

?定期鎖定LCD互斥鎖,更新LCD上的計數(shù)器,并解鎖互斥鎖

4.LED閃爍任務

?以固定的間隔切換一個簡單的狀態(tài)LED

?用作顯示RTOS正在運行的視覺心跳

主要功能:

?初始化硬件和外設

?清除LCD

?創(chuàng)建所有四個任務

?啟動調(diào)度程序。

?可選配置低功耗/休眠模式

4. 一步- -步驟指南

4.1創(chuàng)建STM32CubeIDE項目

1.在STM32CubeIDE中創(chuàng)建一個新的STM32項目。

?文件→新建→STM32項目

?選擇RT - Spark板使用的MCU(如果在板數(shù)據(jù)庫中出現(xiàn),則選擇RT - Spark板本身)。

?給它起一個名字,比如FreeRTOS_RT_Spark_Project。

2.生成啟用HAL驅(qū)動程序的基本項目。

?最初接受默認的時鐘設置。

?完成向?qū)б源蜷_。ioc配置。

4.2.Ioc引腳和外設配置

4.2.1配置AHT20傳感器I2C

1.打開.ioc文件中的Pinout & Configuration選項卡。

2. 啟用I2C外設(例如,I2C1或I2C2,取決于RT - Spark原理圖和文檔)。

3. 設置引腳以匹配RTSpark AHT21連接:

?SCL引腳:GPIO AHT SCL(來自原理圖1.3)

?SDA引腳:GPIO AHT SDA

4. 在I2C設置中:

?選擇“I2C”模式

?配置速度(例如,標準模式100 kHz,除非你改變它)

添加:I2C配置和所用引腳的屏幕截圖。

4.2.2配置LCD接口(FSMC/8080)

1. 使能通過8080并行接口驅(qū)動ST7789 LCD的FSMC/FMC (Flexible Static Memory Controller)。

2. 根據(jù)RT - Spark原理圖(圖1.1)配置數(shù)據(jù)線db0 - db7、控制線CS、DC、WR、RD和背光引腳(LCD_BL)。

3. 根據(jù)您使用的現(xiàn)有LCD庫的要求設置相應的引腳(這應該與repo代碼匹配)。

4. 確保GPIO的速度和輸出類型符合LCD驅(qū)動代碼的要求。

4.2.3配置RGB LED和電位器

1.RGB led (pwm):

?選擇一個TIMx定時器,并在連接到RGB LED引腳(由RTSpark板定義)的通道上啟用PWM模式。

?將每個顏色通道配置為PWM輸出,具有合適的頻率(例如,1-10 kHz)。

?將引腳映射到RGB LED焊盤。

2.電位計(ADC):

?使能ADC外設(如ADC1)。

?選擇連接到電位器的通道(請參閱文檔/電路板手冊)。

?根據(jù)代碼的讀取方式設置連續(xù)或單一轉(zhuǎn)換模式。

4.2.4配置狀態(tài)指示燈和其他gpio

1. 識別用于閃爍的LED引腳(板載用戶LED)。

2. 在Pinout中設置為GPIO Output。

3. 配置代碼所需的任何其他gpio(例如,重置引腳,背光啟用等)。

4.3在STM32CubeMX中啟用FreeRTOS

1. 在。iocMiddleware部分,啟用FreeRTOS。

2. 選擇一個與您的項目設置匹配的基本堆方案(例如,heap_4)。

3. 配置:

?每個任務的最小堆棧大小

?總堆大小(足夠4個任務+其他分配)

4.4生成代碼和集成庫

1. 點擊項目→生成代碼(或按齒輪圖標),讓STM32CubeIDE基于ioc生成源文件。

2. 在項目中添加/導入LCD驅(qū)動程序和AHT21傳感器驅(qū)動程序:

?復制LCD驅(qū)動程序。c和。h文件到Core/Src和Core/Inc(或適當?shù)奈募A)。

?也復制AHT21驅(qū)動程序的。c和。h文件。

?確保項目屬性→C/ c++通用→路徑和符號中的包含路徑是正確的。

3. 將這些驅(qū)動程序包含在應用程序代碼中(例如,main.c或?qū)S玫腶pp.c):

4.5實現(xiàn)互斥鎖和任務

現(xiàn)在我們用FreeRTOS把所有的東西捆綁在一起。

4.5.1創(chuàng)建LCD互斥鎖

在你的應用程序代碼中(例如,main.c的頂部附近):

在main()中啟動調(diào)度器之前:

任何時候你訪問LCD在一個任務:

4.5.2溫度顯示任務

偽結(jié)構(gòu)(適應你現(xiàn)有的代碼):

4.5.3 RGB亮度任務(鍋控)

4.5.4計數(shù)器顯示任務

4.5.5 LED閃爍任務

4.6創(chuàng)建任務并啟動調(diào)度程序

在硬件初始化之后和vTaskStartScheduler()之前的main()中:

4.7構(gòu)建、flash和測試

1.在STM32CubeIDE中構(gòu)建項目。

?修復任何缺失的包含或類型錯誤,使用您的repo作為參考。

2.通過USB連接RT - Spark板。

3. 選擇正確的調(diào)試配置并刷新固件。

4. 復位單板,觀察:

?液晶顯示溫度和計數(shù)器(在不同的區(qū)域或風格)。

?RGB LED亮度隨著電位器的轉(zhuǎn)動而變化。

?狀態(tài)指示燈以正常速率閃爍。

5. 它是如何工作的(摘要)

?FreeRTOS管理四個任務,每個任務都有一個無限循環(huán)和自己的職責。

?任務通過調(diào)用vTaskDelay()來進行協(xié)作,這將產(chǎn)生CPU,以便其他任務可以運行。

?LCD互斥鎖確保一次只有一個任務使用LCD,防止重復寫入。

?AHT21傳感器提供超過I2C的實時溫度數(shù)據(jù)。

?電位器輸入通過ADC讀取并映射到PWM占空比以控制RGB亮度。

?LED閃爍任務為RTOS調(diào)度器提供了一個簡單的視覺心跳。

6. 可能的改進

?你可以把這個實驗擴展成一個更高級的RTOS項目:

?從AHT21添加濕度顯示,并在LCD上顯示溫度/濕度。

?使用隊列在任務之間發(fā)送數(shù)據(jù)(例如,傳感器任務→顯示任務)。

?添加按鈕輸入以更改顯示模式或RGB模式。

?更積極地實現(xiàn)低功耗模式,并在定時器或中斷時喚醒。

7. 結(jié)果和輸出

本文編譯自hackster.io

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀

特朗普集團近日取消了其新推出的T1智能手機“將在美國制造”的宣傳標語,此舉源于外界對這款手機能否以當前定價在美國本土生產(chǎn)的質(zhì)疑。

關(guān)鍵字: 特朗普 蘋果 AI

美國總統(tǒng)特朗普在公開場合表示,他已要求蘋果公司CEO蒂姆·庫克停止在印度建廠,矛頭直指該公司生產(chǎn)多元化的計劃。

關(guān)鍵字: 特朗普 蘋果 AI

4月10日消息,據(jù)媒體報道,美國總統(tǒng)特朗普宣布,美國對部分貿(mào)易伙伴暫停90天執(zhí)行新關(guān)稅政策,同時對中國的關(guān)稅提高到125%,該消息公布后蘋果股價飆升了15%。這次反彈使蘋果市值增加了4000多億美元,目前蘋果市值接近3萬...

關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

3月25日消息,據(jù)報道,當?shù)貢r間3月20日,美國總統(tǒng)特朗普在社交媒體平臺“真實社交”上發(fā)文寫道:“那些被抓到破壞特斯拉的人,將有很大可能被判入獄長達20年,這包括資助(破壞特斯拉汽車)者,我們正在尋找你?!?/p> 關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

1月22日消息,剛剛,新任美國總統(tǒng)特朗普放出重磅消息,將全力支持美國AI發(fā)展。

關(guān)鍵字: 特朗普 AI 人工智能

特朗普先生有兩件事一定會載入史冊,一個是筑墻,一個是挖坑。在美墨邊境筑墻的口號確保邊境安全,降低因非法移民引起的犯罪率過高問題;在中美科技產(chǎn)業(yè)之間挖坑的口號也是安全,美國企業(yè)不得使用對美國國家安全構(gòu)成威脅的電信設備,總統(tǒng)...

關(guān)鍵字: 特朗普 孤立主義 科技產(chǎn)業(yè)

據(jù)路透社1月17日消息顯示,知情人士透露,特朗普已通知英特爾、鎧俠在內(nèi)的幾家華為供應商,將要撤銷其對華為的出貨的部分許可證,同時將拒絕其他數(shù)十個向華為供貨的申請。據(jù)透露,共有4家公司的8份許可被撤銷。另外,相關(guān)公司收到撤...

關(guān)鍵字: 華為 芯片 特朗普

曾在2018年時被美國總統(tǒng)特朗普稱作“世界第八奇跡”的富士康集團在美國威斯康星州投資建設的LCD顯示屏工廠項目,如今卻因為富士康將項目大幅縮水并拒絕簽訂新的合同而陷入了僵局。這也導致富士康無法從當?shù)卣抢铽@得約40億美...

關(guān)鍵字: 特朗普 富士康

今年5月,因自己發(fā)布的推文被貼上“無確鑿依據(jù)”標簽而與推特發(fā)生激烈爭執(zhí)后,美國總統(tǒng)特朗普簽署了一項行政令,下令要求重審《通信規(guī)范法》第230條。

關(guān)鍵字: 谷歌 facebook 特朗普

眾所周知,寄往白宮的所有郵件在到達白宮之前都會在他地進行分類和篩選。9月19日,根據(jù)美國相關(guān)執(zhí)法官員的通報,本周早些時候,執(zhí)法人員截獲了一個寄給特朗普總統(tǒng)的包裹,該包裹內(nèi)包含蓖麻毒蛋白。

關(guān)鍵字: 美國 白宮 特朗普
關(guān)閉