實現功能:在野火提供的資料中提取移植好freertos的模板在stm32下完成乙個基於freertos的多工程式,執行3個週期性task。
task1,每間隔500ms閃爍(變化)一次led;
task2,每間隔2000ms,向串列埠傳送一次指令資料「helloworld!";
task3,每間隔5000ms,從aht20採集一次溫濕度資料(不考慮硬體情況,僅寫出整個多工框架模擬**)。
修改main檔案內容:
#include "freertos.h"
#include "task.h"
#include "bsp_led.h"
#include "bsp_usart.h"
static taskhandle_t led1_task_handle = null;
static taskhandle_t hello_task_handle = null;
static taskhandle_t aht_task_handle = null;
static void led1_task(void* pvparameters);
static void hello_task(void* pvparameters);
static void aht_task(void* pvparameters);
static void bsp_init(void);
int main(void)
static void led1_task(void* parameter)
}static void hello_task(void* parameter)
}static void aht_task(void* parameter)
static void bsp_init(void)
開啟串列埠,接收區顯示如下:
STM32 簡單多任務排程的方法與程式例程
多工處理是指使用者可以在同一時間內執行多個應用程式,每個應用程式被稱作乙個任務.linux windows就是支援多工的作業系統,比起單任務系統它的功能增強了許多。當多工作業系統使用某種任務排程策略允許兩個或更多程序併發共享乙個處理器時,事實上處理器在某一時刻只會給一件任務提供服務。因為任務排程機制...
基於stm32的簡單多工切換設計
系統資料 1 當前的pid 2 所有的程序總數pamount 多工系統的初始化 1 設定msp值 2 設定臨時的psp值 因為這段實際上只在啟動定時器之前有效 3 設定control 1 1 設定雙堆疊 馬上會自動切換到psp上 4 設定pid 0,設定pamount 0 5 設定為程序資訊表起始位...
STM32實現IAP程式公升級
1.寫在前面 對於stm32來說,晶元出廠時已經預置了一段bootloader,但是啟動bootloader需要設定微控制器的boot引腳 boot1 0,boot0 1,並復位後才能進入系統bootloader。boot引腳的設定可通過硬體來實現自動設定和復位,從而利用系統bootloader實現...