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

當(dāng)前位置:首頁(yè) > 工業(yè)控制 > 電路設(shè)計(jì)項(xiàng)目集錦
[導(dǎo)讀]FreeRTOS是一個(gè)輕量級(jí)、開(kāi)源的實(shí)時(shí)操作系統(tǒng)內(nèi)核,專為微控制器和小型嵌入式系統(tǒng)設(shè)計(jì)。它提供基本的RTOS特性,如任務(wù)調(diào)度、任務(wù)間通信、同步機(jī)制和低功耗管理,同時(shí)保持最小的內(nèi)存占用。

FreeRTOS是一個(gè)輕量級(jí)、開(kāi)源的實(shí)時(shí)操作系統(tǒng)內(nèi)核,專為微控制器和小型嵌入式系統(tǒng)設(shè)計(jì)。它提供基本的RTOS特性,如任務(wù)調(diào)度、任務(wù)間通信、同步機(jī)制和低功耗管理,同時(shí)保持最小的內(nèi)存占用。

在這個(gè)項(xiàng)目中,F(xiàn)reeRTOS被用來(lái)管理STM32微控制器上的多個(gè)并發(fā)任務(wù),實(shí)現(xiàn)確定性執(zhí)行、模塊化軟件設(shè)計(jì)和安全訪問(wèn)共享硬件資源。RTOS調(diào)度器處理任務(wù)切換,而任務(wù)通過(guò)延遲函數(shù)顯式地產(chǎn)生CPU控制,實(shí)現(xiàn)適合資源受限系統(tǒng)的協(xié)作多任務(wù)方法。

項(xiàng)目目標(biāo)

該項(xiàng)目的目標(biāo)是設(shè)計(jì)和實(shí)現(xiàn)一個(gè)基于rtos的多任務(wù)嵌入式系統(tǒng),該系統(tǒng)同時(shí):

?從I2C傳感器獲取溫度數(shù)據(jù)

?使用模擬輸入控制RGB LED亮度

?更新LCD上的圖形信息

?定時(shí)執(zhí)行LED閃爍任務(wù)

所有任務(wù)都獨(dú)立運(yùn)行,同時(shí)使用RTOS同步原語(yǔ)安全地共享系統(tǒng)資源。

步驟1:硬件和外設(shè)初始化

?使用STM32CubeMX配置系統(tǒng)時(shí)鐘,gpio, ADC, I2C, FSMC和PWM外設(shè)

?通過(guò)FSMC使用8080并行接口初始化LCD (ST7789 v3)

?通過(guò)I2C方式初始化AHT20溫濕度傳感器

?驗(yàn)證LED和電位器輸入的正確操作

引腳映射和接線連接:

GND -> Left Leg

PA1 -> Middle Leg

3.3V -> Right Leg

STM32 Dev Board -> RGB

GND -> Long Leg

PA6 -> Red Leg

PE13 -> Blue Leg

PE11 -> Green Leg

步驟2:驅(qū)動(dòng)程序集成和實(shí)現(xiàn)

?適應(yīng)/實(shí)現(xiàn)了ST7789驅(qū)動(dòng)程序(src/drv_lcd. + inc/drv_lcd.h和drv_lcd_font.c中的字體例程)來(lái)初始化顯示,設(shè)置窗口,并在FSMC上繪制文本/像素。

?實(shí)現(xiàn)AHT2x驅(qū)動(dòng)程序(src/drv_aht21.c + inc/drv_aht21.h)執(zhí)行I2C事務(wù)并將響應(yīng)轉(zhuǎn)換為溫度/濕度值。

?增加了簡(jiǎn)單的ADC讀取助手和PWM設(shè)置功能,用于LED控制。

步驟3 - RTOS任務(wù)設(shè)計(jì)

實(shí)現(xiàn)了四個(gè)重點(diǎn)的FreeRTOS任務(wù)(在src/main.c中創(chuàng)建):

?讀取AHT2x,格式化溫度字符串,更新LCD(周期性)。

?采樣ADC,平滑值,映射到PWM占空比的RGB LED。

?CounterTask -在LCD上增加并顯示一個(gè)計(jì)數(shù)器。

?BlinkTask -以穩(wěn)定的速率切換GPIO LED。

?每個(gè)任務(wù)運(yùn)行一個(gè)無(wú)限循環(huán),并在更新后使用vTaskDelay(),以便任務(wù)自愿放棄(協(xié)作式行為)。

步驟4 -同步:保護(hù)LCD

?為L(zhǎng)CD創(chuàng)建一個(gè)FreeRTOS互斥鎖(xSemaphoreCreateMutex())。

?每一個(gè)多步驟的LCD操作在寫(xiě)入前都要獲取互斥鎖(設(shè)置窗口→推像素→繪制文本),然后立即返回。

?在xSemaphoreTake上使用短超時(shí),以便任務(wù)可以跳過(guò)更新或重試,而不是死鎖。

步驟5 - ADC平滑和PWM映射

?應(yīng)用一個(gè)小的平滑濾波器(簡(jiǎn)單的EMA)原始ADC樣本,以避免可見(jiàn)的LED閃爍。

?將濾波后的ADC值映射到定時(shí)器PWM占空比并更新三個(gè)通道(R/G/B)。

步驟6 -電源考慮

?啟用FreeRTOS空閑處理(tickless-idle或vApplicationIdleHook),以便MCU可以在沒(méi)有任務(wù)準(zhǔn)備好時(shí)進(jìn)入睡眠狀態(tài)。

?確保睡眠進(jìn)入不會(huì)干擾所需的中斷(I2C, TIM, ADC)。

步驟7 -構(gòu)建,flash和驗(yàn)證

STM32CubeIDE中構(gòu)建項(xiàng)目,并使用ST - Link進(jìn)行閃現(xiàn)。

物理板上已驗(yàn)證的行為:

?LCD初始化和清除。

?溫度顯示,并定期更新。

?計(jì)數(shù)器在它自己的LCD區(qū)域中遞增。

?電位器平滑地改變RGB亮度。

?閃爍LED以預(yù)期速率切換。

?沒(méi)有LCD損壞(互斥鎖保護(hù)訪問(wèn))。

步驟8:觀察、調(diào)整和決定

?保持LCD臨界區(qū)短:在RAM中準(zhǔn)備字符串/緩沖區(qū),然后短暫地使用互斥鎖進(jìn)行寫(xiě)入。

?輕微增加互斥鎖超時(shí),以減少在繁忙活動(dòng)期間跳過(guò)的更新。

?增加ADC平滑去除可見(jiàn)的閃爍。

?如果計(jì)劃稍后進(jìn)行較大的刷新,可以考慮使用DMA或雙重緩沖來(lái)減少顯示阻塞時(shí)間。

要在repo中檢查的文件(工作所在的地方):

-任務(wù)創(chuàng)建,互斥鎖創(chuàng)建,調(diào)度程序啟動(dòng),高級(jí)流程。

?src/drv_lcd., inc/drv_lcd.h - ST7789初始化和繪圖功能。

Src /drv_lcd_font.c, inc/drv_lcd_font.h -字體渲染和文本輔助程序。

?src/drv_aht21.c, inc/drv_aht21.h - AHT2x傳感器驅(qū)動(dòng)程序(I2C讀取/轉(zhuǎn)換)。

?/FreeRTOSConfig.h -本項(xiàng)目使用的RTOS配置。完整的repo的源代碼在最后。

結(jié)果示例

本文編譯自hackster.io

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

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉