Github
https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/FreeRTOS/Class02_SuspendResume
簡(jiǎn)介
任務(wù)掛起與繼續(xù)的作用,用于暫停運(yùn)行某些任務(wù)與繼續(xù)運(yùn)行某些任務(wù)。就像用視頻播放器看電影的播放按鍵與暫停按鍵一樣簡(jiǎn)單。
在STM32CubeMX上配置FreeRTOS非常的簡(jiǎn)單,幾乎不需要做任何操作,只需要勾選
移植FreeRTOS就成功了,關(guān)于在非Cube上的RTOS配置文件內(nèi)的相關(guān)內(nèi)容,也在下方的Configuration欄中給好了
所有的配置都可以在這里完成
任務(wù)創(chuàng)建
有別于在沒(méi)有使用Cube下的創(chuàng)建方式,在Cube中它專(zhuān)門(mén)提供了可視化的創(chuàng)建方式,并且增加了中間文件cmsis_os.c將freertos中提供的方法進(jìn)行了再一次的封裝(猜測(cè)可能是為了支持更多的OS吧)
可視化創(chuàng)建方式
在Tasks and Queues中可以點(diǎn)擊Add按鈕添加新的任務(wù)
1、任務(wù)名字
2、任務(wù)優(yōu)先級(jí)(因?yàn)樵黾恿艘粋€(gè)層級(jí)結(jié)構(gòu),導(dǎo)致不再是以數(shù)字來(lái)決定優(yōu)先級(jí)了)
3、棧大小
4、函數(shù)名(有別于第一條,第一條是字符串格式的,這條是定義代碼中的函數(shù)名字)
5、代碼生成設(shè)置(生成與否?還是生成弱函數(shù)——希望自行編寫(xiě)函數(shù)的選As External,希望自動(dòng)生成的選Default)
6、傳入的數(shù)據(jù)/指針,一般為NULL,有希望傳入的數(shù)據(jù)可以修改
7、創(chuàng)建方式(動(dòng)態(tài)或靜態(tài),一般動(dòng)態(tài),很少使用靜態(tài)方式)
代碼創(chuàng)建方式
osThreadId LED_Blink2Handle;
osThreadDef(LED_Blink2, Blink_PB1, osPriorityNormal, 0, 128);
LED_Blink2Handle = osThreadCreate(osThread(LED_Blink2), NULL);
代碼創(chuàng)建也很簡(jiǎn)單,實(shí)際上osThreadCreate對(duì)xTaskCreate進(jìn)行了封裝,而osThreadDef與osThread都是宏定義,用于描述初始化變量的,通過(guò)預(yù)編譯器巧妙的生成了函數(shù)名(字符串)與相關(guān)初始化變量賦給了函數(shù)osThreadCreate
LED_Blink2:希望生成的中間結(jié)構(gòu)體名稱(chēng)也會(huì)被預(yù)編譯器生成同名的字符串
Blink_PB1:真實(shí)的函數(shù)名稱(chēng)
osPriorityNormal:優(yōu)先級(jí)
0:最大實(shí)例化個(gè)數(shù)(估計(jì)是以后會(huì)用到,目前這個(gè)變量還沒(méi)什么作用,默認(rèn)0就好)
128:??臻g
任務(wù)掛起與繼續(xù)
/* USER CODE BEGIN Header_blink01 */
/**
* @brief Function implementing the Blink_PB0 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_blink01 */
void blink01(void const * argument)
{
/* USER CODE BEGIN blink01 */
int i = 0;
/* Infinite loop */
for(;;)
{
if(i == 10)
vTaskSuspend(Blink_PB1Handle);
if(i == 20)
vTaskResume(Blink_PB1Handle);
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
osDelay(500);
i++;
}
/* USER CODE END blink01 */
}
/* USER CODE BEGIN Header_blink02 */
/**
* @brief Function implementing the Blink_PB1 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_blink02 */
void blink02(void const * argument)
{
/* USER CODE BEGIN blink02 */
/* Infinite loop */
for(;;)
{
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
osDelay(1000);
}
/* USER CODE END blink02 */
}
真的是很簡(jiǎn)單,直接調(diào)用vTaskSuspend用于掛起某個(gè)任務(wù),調(diào)用vTaskResume用于繼續(xù)某個(gè)任務(wù)
上一篇:STM32 RTOS系統(tǒng) 學(xué)習(xí)筆記(一)
下一篇:stm32 FreeRTOS中如何創(chuàng)建任務(wù)
推薦閱讀最新更新時(shí)間:2025-07-02 07:10


設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦
- 【下載】LAT1526 利用SPI的下溢實(shí)現(xiàn)回顯功能
- 【下載】LAT1509 STM32G0B1的FDCAN進(jìn)行通信丟包和多包案例分享
- 【下載】LAT1511 運(yùn)行Ux_Host_HUB_HID_MSC通過(guò)Hub連接U盤(pán)讀寫(xiě)不穩(wěn)定問(wèn)題分析
- 【下載】LAT1466 USB x Device HID Standalone的移植
- 【下載】LAT1488 STM32 USBxDevice MSC standalone移植示例
- 【下載】LAT1482 STM32G0單線(xiàn)串口通信幀錯(cuò)誤問(wèn)題解析
- Microchip 升級(jí)數(shù)字信號(hào)控制器(DSC)產(chǎn)品線(xiàn) 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無(wú)線(xiàn)微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開(kāi)發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹(shù)莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- 用于 Intel 486TM DX4TM Overdrive 微處理器的 LT1587CT-3.3 3.3V/3A 低壓差穩(wěn)壓器的典型應(yīng)用
- 采用MOSFET的3相多電平逆變器
- 使用 NXP Semiconductors 的 MAX686EEE+ 的參考設(shè)計(jì)
- 使用 LT3663 的電容器充電器電路
- UJA1169A評(píng)估板
- AM1/4S-4815SZ 15V 0.25 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- LTC3857EGN-1 高效雙路 2.5V/3.3V 降壓轉(zhuǎn)換器的典型應(yīng)用電路
- LTC2858、20Mbps、限擺率15kV RS485/RS422收發(fā)器的典型應(yīng)用電路
- 模塊穩(wěn)壓器縮小電源尺寸和設(shè)計(jì)工作利用 LTM8020、兩個(gè)電容和一個(gè)電阻器在 200mA 時(shí)產(chǎn)生 3.3V
- LT1072HVIT 負(fù)降壓轉(zhuǎn)換器的典型應(yīng)用
- 飛思卡爾KL16時(shí)鐘配置
- stm32F4使用溫濕度傳感器模塊-->DHT11
- 讓子彈飛一會(huì)兒!小米汽車(chē),投“資”問(wèn)路
- CEVA 和 Mimi 合作為 真正無(wú)線(xiàn)耳機(jī)市場(chǎng)推動(dòng)輔助聽(tīng)力發(fā)展
- 示波器探頭構(gòu)造及運(yùn)用
- 電動(dòng)汽車(chē)的防水效果如何
- ARM裸機(jī)學(xué)習(xí)一:S3C2440的時(shí)鐘體系
- 基于無(wú)線(xiàn)射頻技術(shù)的測(cè)溫系統(tǒng)設(shè)計(jì)方案
- 基于FPGA芯片EP1c3T144和開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)虛擬儀器接口設(shè)計(jì)
- 蘋(píng)果被判侵犯3G專(zhuān)利,需向西班牙公司TOT賠償1.1億美元
- 從設(shè)計(jì)概念到 FPGA 原型僅需數(shù)分鐘,印度 InCore 完成 SoC Generator 平臺(tái)硅驗(yàn)證
- 消息稱(chēng)因難尋客戶(hù),三星推遲美國(guó)芯片工廠的完工時(shí)間
- BOE(京東方)聯(lián)合榮耀打造榮耀Magic V5 以領(lǐng)先LTPO技術(shù)打造行業(yè)新標(biāo)桿
- 華為ADS 4發(fā)布:多傳感器融合,提升自動(dòng)駕駛安全性
- 曉鶯說(shuō):線(xiàn)控制動(dòng)變革風(fēng)云
- 大眾商用車(chē)推出AirConsole 將其信息娛樂(lè)系統(tǒng)擴(kuò)展為游戲機(jī)
- 福州大學(xué)發(fā)明新機(jī)器視覺(jué)傳感器 可使機(jī)器人對(duì)極端光照做出超快反應(yīng)
- 蘋(píng)果獲沉浸式虛擬顯示器相關(guān)的專(zhuān)利
- 英特爾汽車(chē)“折戟”,十年布局一夜歸零
- 博通或要收購(gòu)安全軟件公司賽門(mén)鐵克
- 國(guó)產(chǎn)MCU汽車(chē)前裝車(chē)身控制領(lǐng)域芯突破,賽騰微出貨量超百萬(wàn)
- 日制裁韓國(guó) 或?qū)е耰Phone減產(chǎn)
- 蘋(píng)果神秘13英寸MacBook Pro曝光:型號(hào)A2159,或配32GB內(nèi)存
- 傳三星要在印度裁員上千名
- 預(yù)計(jì)投資1126億元,華東科技存儲(chǔ)器封測(cè)等項(xiàng)目集中開(kāi)工
- 新AirPods可能延遲至明年發(fā)布
- 再推“注冊(cè)制” IC企業(yè)上市該選擇科創(chuàng)板還是創(chuàng)業(yè)板?
- 特斯拉上海廠獲得工行40億元貸款,僅用于生產(chǎn)相關(guān)支出
- 聯(lián)建光電違規(guī)披露信息遭處罰,賠償1.58億