久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7195|回復: 0
收起左側

基于STM32F103的MDK5_RTOS創建線程

[復制鏈接]
ID:89763 發表于 2015-9-10 00:38 | 顯示全部樓層 |閱讀模式
前面已經正式介紹了如何建立一個帶有RTOS的工程,那么現在開始探究一下,如何在使用了RTOS的程序中建立線程。
經過查閱,發現想要創建一個線程的話,那么只要調用創建線程的函數就可以了。一下就是其 原型。
/// Create a thread and add it to Active Threads and set it tostate READY.
/// \param[in]    thread_def    thread definitionreferenced with \ref osThread.
/// \param[in]     argument     pointerthat is passed to the thread function as start argument.
/// \return thread ID for reference by other functions or NULLin case of error.
osThreadId osThreadCreate (const osThreadDef_t *thread_def,void *argument);


從上很容易的看出,想要創建線程,首先需要準備一個線程的結構體,和進入線程的時候的參數。
這里我們首先準備兩個 結構體,thread1,和thread2.

osThreadDef_t thread1 = {
.pthread = thread1_function,
.tpriority = osPriorityNormal,
.instances = 1,
.stacksize = 0,
};

osThreadDef_t thread2 = {
.pthread = thread2_function,
.tpriority =osPriorityNormal,
.instances = 1,
.stacksize = 0,
};

其中 pthread 所指的就是 線程的入口地址

當準備好 兩個 結構體之后,我們就可以 利用 osThreadCreate  來創建相應的線程了。

我們在線程1的入口函數中 寫led1的閃光燈,線程2的入口函數中寫led2的閃光燈。來觀察相應的實驗現象。

其完整的代碼如下。

#include "stm32f10x.h"
#include  
#include  

void gpio_init()
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeDef gpio_initStruct;
gpio_initStruct.GPIO_Mode =GPIO_Mode_Out_PP;
gpio_initStruct.GPIO_Speed =GPIO_Speed_50MHz;
gpio_initStruct.GPIO_Pin = GPIO_Pin_2;
GPIO_Init(GPIOA,&gpio_initStruct);
gpio_initStruct.GPIO_Pin =GPIO_Pin_3;
GPIO_Init(GPIOA,&gpio_initStruct);
}

void thread2_function(void const *args)
{
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_3);
osDelay(500);
GPIO_SetBits(GPIOA, GPIO_Pin_3);
osDelay(500);
}
}

osThreadDef_t thread2 = {
.pthread =thread2_function,
.tpriority = osPriorityNormal,
.instances = 1,
.stacksize = 0
};

void thread1_function(void const *args)
{
while(1)
{
GPIO_ResetBits(GPIOA,GPIO_Pin_2);
osDelay(500);
GPIO_SetBits(GPIOA, GPIO_Pin_2);
osDelay(500);
}
}

osThreadDef_t thread1 ={
.pthread =thread1_function,
.tpriority = osPriorityNormal,
.instances = 1,
.stacksize = 0,
};

int main()
{
gpio_init();
osThreadCreate((const osThreadDef_t*)&thread1, NULL);

while(1);
}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品欧美一区二区三区 | 日韩欧美国产一区二区三区 | 精品一区二区三区日本 | 国产精品日韩欧美一区二区三区 | 日日骚视频| 日韩高清国产一区在线 | 99视频免费看 | 在线视频一区二区三区 | 久久精品一区 | 羞羞网站在线观看 | 日韩成人在线看 | 日韩精品一区二区三区 | 日本一区二区三区四区 | 欧美情趣视频 | 女同久久另类99精品国产 | 黄色三级免费 | 国产成人久久 | 国产精品永久免费视频 | 天天操夜夜拍 | 成人国产精品免费观看视频 | m豆传媒在线链接观看 | 狠狠色香婷婷久久亚洲精品 | 一区二区三区视频免费看 | 久在线 | 午夜精品在线 | 日韩成人免费av | 精品视频久久久久久 | 成年无码av片在线 | 日本爱爱 | 综合九九 | 在线视频91 | 亚洲精品久久久久avwww潮水 | 一区二区三区国产 | 精品视频一区二区三区四区 | 久草网在线视频 | 亚洲欧美综合精品久久成人 | 成人毛片在线观看 | 亚洲精品二区 | 亚洲综合在线播放 | 久久伊人亚洲 | 日韩在线视频免费观看 |