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中它專門提供了可視化的創(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ù)——希望自行編寫函數(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)體名稱也會(huì)被預(yù)編譯器生成同名的字符串
Blink_PB1:真實(shí)的函數(shù)名稱
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ā)板 精華推薦
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 智能護(hù)眼臺(tái)燈設(shè)計(jì)
- 蓄電池高能脈沖充電系統(tǒng)設(shè)計(jì)
- 基于51單片機(jī)定時(shí)器的電子時(shí)鐘設(shè)計(jì)方案
- 瑞薩電子推出面向單電機(jī)應(yīng)用優(yōu)化的卓越MCU, 涵蓋電動(dòng)工具、家用電器等廣泛應(yīng)用場(chǎng)景
- 用于 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ì)兒!小米汽車,投“資”問(wèn)路
- CEVA 和 Mimi 合作為 真正無(wú)線耳機(jī)市場(chǎng)推動(dòng)輔助聽(tīng)力發(fā)展
- 示波器探頭構(gòu)造及運(yùn)用
- 電動(dòng)汽車的防水效果如何
- ARM裸機(jī)學(xué)習(xí)一:S3C2440的時(shí)鐘體系
- 基于無(wú)線射頻技術(shù)的測(cè)溫系統(tǒng)設(shè)計(jì)方案
- 基于FPGA芯片EP1c3T144和開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)虛擬儀器接口設(shè)計(jì)
- 奇瑞人形機(jī)器人9月開(kāi)售并將面向個(gè)人用戶,機(jī)器人時(shí)代該來(lái)了嗎?
- 華為李文廣:華為智能駕駛規(guī)劃曝光,加速追趕特斯拉
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-下
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-中
- 功能迭代和功能安全的矛盾及車端應(yīng)用層-上
- 車云一體其他層面的架構(gòu)設(shè)計(jì)借鑒-下
- 輔助駕駛域控發(fā)展背景
- 輔助駕駛域控核心方法論是什么-下
- 輔助駕駛域控核心方法論是什么-上
- 規(guī)模化量產(chǎn)時(shí)代來(lái)臨?智元、宇樹(shù)科技中標(biāo)1.24億人形機(jī)器人大單!
- *ST德豪上半年預(yù)虧超3億元 關(guān)閉LED芯片廠收深交所關(guān)注函
- 模擬量數(shù)據(jù)的采集過(guò)程解析
- 自動(dòng)駕駛陷入冰與火的漩渦,未來(lái)如何?
- 新能源汽車補(bǔ)貼退坡,國(guó)內(nèi)驅(qū)動(dòng)電機(jī)廠商境況如何?
- 新能源汽車發(fā)展愈加激烈,吉利的未來(lái)究竟在哪?
- 臺(tái)積電完成5nm基礎(chǔ)設(shè)施設(shè)計(jì):邏輯密度是7nm 1.8倍
- 美國(guó)計(jì)劃推動(dòng)國(guó)內(nèi)鋰電池生產(chǎn)已瞄準(zhǔn)中國(guó)!
- AI能夠分清人類情緒?情緒識(shí)別或?qū)?chuàng)造AI“經(jīng)濟(jì)新模式”
- OPPO副總裁曝光了Reno十倍變焦規(guī)格
- 全球5G設(shè)備市場(chǎng):華為份額排第四