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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7093|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于STM32F103的MDK5_RTOS創(chuàng)建線程

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:89763 發(fā)表于 2015-9-10 00:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
前面已經(jīng)正式介紹了如何建立一個(gè)帶有RTOS的工程,那么現(xiàn)在開(kāi)始探究一下,如何在使用了RTOS的程序中建立線程。
經(jīng)過(guò)查閱,發(fā)現(xiàn)想要?jiǎng)?chuàng)建一個(gè)線程的話,那么只要調(diào)用創(chuàng)建線程的函數(shù)就可以了。一下就是其 原型。
/// 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);


從上很容易的看出,想要?jiǎng)?chuàng)建線程,首先需要準(zhǔn)備一個(gè)線程的結(jié)構(gòu)體,和進(jìn)入線程的時(shí)候的參數(shù)。
這里我們首先準(zhǔn)備兩個(gè) 結(jié)構(gòu)體,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 所指的就是 線程的入口地址

當(dāng)準(zhǔn)備好 兩個(gè) 結(jié)構(gòu)體之后,我們就可以 利用 osThreadCreate  來(lái)創(chuàng)建相應(yīng)的線程了。

我們?cè)诰程1的入口函數(shù)中 寫led1的閃光燈,線程2的入口函數(shù)中寫led2的閃光燈。來(lái)觀察相應(yīng)的實(shí)驗(yàn)現(xiàn)象。

其完整的代碼如下。

#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);
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一区二区三区免费 | 色免费在线视频 | 亚洲国产精品一区二区第一页 | 青青草网站在线观看 | 久久久精品影院 | 久久久久久999 | 国产精品久久久久久久久免费 | 国产精品久久久久一区二区 | 一区免费| 一区二区日本 | 亚洲欧美激情国产综合久久久 | 欧美性久久 | 欧美综合久久 | 亚洲高清在线播放 | 别c我啊嗯国产av一毛片 | 一区二区三区中文 | a级大片免费观看 | 日韩在线播放网址 | 国产精品国产成人国产三级 | 一区二区三区国产精品 | 欧美大片黄 | 精品国产91亚洲一区二区三区www | 亚洲国产黄 | 91视频官网 | 毛片大全 | 成人午夜免费网站 | 欧美xxxx在线 | 日韩精品一区二区不卡 | 午夜午夜精品一区二区三区文 | 蜜桃在线一区二区三区 | 国产成人一区在线 | 一级黄色影片在线观看 | 亚洲成人av在线播放 | 亚洲成av | 亚洲码欧美码一区二区三区 | 91啪影院 | 精品一区二区免费视频 | 99久久婷婷国产综合精品首页 | 在线观看国产视频 | 亚洲精品久久久久久一区二区 | 亚洲一区二区三区四区视频 |