国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

STM32CubeMX學(xué)習(xí)筆記——FreeRTOS_任務(wù)掛起與繼續(xù)

發(fā)布者:撿漏來(lái)了最新更新時(shí)間:2019-07-18 來(lái)源: eefocus關(guān)鍵字:STM32CubeMX  FreeRTOS_  任務(wù)掛起 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

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ù)


關(guān)鍵字:STM32CubeMX  FreeRTOS_  任務(wù)掛起 引用地址:STM32CubeMX學(xué)習(xí)筆記——FreeRTOS_任務(wù)掛起與繼續(xù)

上一篇:STM32 RTOS系統(tǒng) 學(xué)習(xí)筆記(一)
下一篇:stm32 FreeRTOS中如何創(chuàng)建任務(wù)

推薦閱讀最新更新時(shí)間:2025-07-02 07:10

STM32CubeMX學(xué)習(xí)筆記(51)——讀寫(xiě)內(nèi)部Flash
一、簡(jiǎn)介 在STM32芯片內(nèi)部有一個(gè) FLASH 存儲(chǔ)器,它主要用于存儲(chǔ)代碼,我們?cè)陔娔X上編寫(xiě)好應(yīng)用程序后,使用下載器把編譯后的代碼文件燒錄到該內(nèi)部 FLASH 中,由于 FLASH 存儲(chǔ)器的內(nèi)容在掉電后不會(huì)丟失,芯片重新上電復(fù)位后,內(nèi)核可從內(nèi)部 FLASH 中加載代碼并運(yùn)行。 STM32 的內(nèi)部 FLASH 包含主存儲(chǔ)器、系統(tǒng)存儲(chǔ)器以及選項(xiàng)字節(jié)區(qū)域,它們的地址分布及大小見(jiàn)下表 主存儲(chǔ)器 一般我們說(shuō) STM32 內(nèi)部 FLASH 的時(shí)候,都是指這個(gè)主存儲(chǔ)器區(qū)域,它是存儲(chǔ)用戶(hù)應(yīng)用程序的空間,芯片型號(hào)說(shuō)明中的 256K FLASH、512K FLASH 都是指這個(gè)區(qū)域的大小。 主存儲(chǔ)器分為 256 頁(yè),每頁(yè)大小為 2
[單片機(jī)]
基于STM32CUBEMX驅(qū)動(dòng)TOF模塊VL53l0x(1)----單模塊距離獲取的最佳實(shí)踐
概述 VL53L0X是新一代飛行時(shí)間(ToF)激光測(cè)距模塊(不同于傳統(tǒng)技術(shù)),采用目前市場(chǎng)上最小的封裝,無(wú)論目標(biāo)反射率如何,都能提供精確的距離測(cè)量。它可以測(cè)量2m的絕對(duì)距離,為測(cè)距性能等級(jí)設(shè)定了新的基準(zhǔn),為各種新應(yīng)用打開(kāi)了大門(mén)。 VL53L0X集成了一個(gè)領(lǐng)先的SPAD陣列(單光子雪崩二極管),并內(nèi)嵌ST的第二代FlightSense?專(zhuān)利技術(shù)。 VL53L0X的940nm VCSEL發(fā)射器(垂直腔面發(fā)射激光器)完全不為人眼所見(jiàn),加上內(nèi)置的物理紅外濾光片,使其測(cè)距距離更長(zhǎng),對(duì)環(huán)境光的免疫性更強(qiáng),對(duì)蓋片的光學(xué)串?dāng)_具有更好的穩(wěn)定性。 ! 視頻教學(xué) 樣品申請(qǐng) 源碼下載 ( 所有功能 ● 完全集成的小型化模塊 ○ 940
[單片機(jī)]
基于<font color='red'>STM32CUBEMX</font>驅(qū)動(dòng)TOF模塊VL53l0x(1)----單模塊距離獲取的最佳實(shí)踐
STM32CubeMX之串口的使用 (阻塞模式)
環(huán)境: 開(kāi)發(fā)板:STM32F4探索者(正點(diǎn)原子) 一. 進(jìn)行項(xiàng)目的必要配置 時(shí)鐘配置 調(diào)試配置 如果不大清楚,可以看 STM32CubMX工程創(chuàng)建 (點(diǎn)亮LED) 二. 串口選擇 查看 STM32F4探索者 開(kāi)發(fā)板的原理圖,如下圖所示,我們可以看到USB轉(zhuǎn)串口是在USART1 因此我們?cè)?STM32CubeMX 中如下圖進(jìn)行勾選,并進(jìn)行配置 序號(hào)一,代表串口處于異步模式 序號(hào)二,關(guān)閉串口的硬件流控的功能 序號(hào)三,波特率設(shè)置,一般是根據(jù)通信的芯片進(jìn)行選擇,這里選擇是115200 bps 序號(hào)四,代表字長(zhǎng),這里選擇 8 bit 序號(hào)五,代表校驗(yàn)方式,這里選擇無(wú) 序號(hào)六,代表停止位,這里選擇 1
[單片機(jī)]
<font color='red'>STM32CubeMX</font>之串口的使用 (阻塞模式)
STM32CubeMX芯片包(固件庫(kù))使用注意
1. 解壓本地固件庫(kù)包后需要將文件夾放到指定路徑,該指定路徑為cubemx軟件中的help - updater settings - updater settings - repository folder中的路徑,本人的路徑為C:/Users/WR/STM32Cube/Repository/。之前沒(méi)有放到指定路徑,因此Generate Code時(shí)會(huì)提示錯(cuò)誤信息。 2. 將固件庫(kù)放入指定路徑后,需要在CubeMX軟件中選擇它,點(diǎn)擊工具欄Project - Settings - Project - Firmware Package Name and Version中選擇剛剛放置到指定位置的固件庫(kù),本人的固件庫(kù)為STM32Cube
[單片機(jī)]
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章
隨便看看

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京B2-20211791 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved