使用IAR移植ucos到stm32的步骤

2026/4/26 7:10:11

for (;;) {

GPIO_WriteBit(GPIOA,GPIO_Pin_7 ,Bit_SET); OSTimeDly(500);

GPIO_WriteBit(GPIOA,GPIO_Pin_7 ,Bit_RESET); OSTimeDly(500); } }

static void startup(void *p_arg) {

OS_CPU_SysTickInit(); //初始化时钟滴答

os_err = OSTaskCreate(task1, //任务1

(void *)0, //不带参数

(OS_STK *)&task1_stk[TASK1_STK_SIZE - 1],//堆栈指针 (INT8U)TASK1_PRIO); //优先级

os_err = OSTaskCreate(task2, //任务2 (void *)0, //不带参数

(OS_STK *)&task2_stk[TASK2_STK_SIZE - 1],//堆栈指针 (INT8U)TASK2_PRIO); //优先级

os_err = OSTaskCreate(task3, //任务3 (void *)0, //不带参数

(OS_STK *)&task3_stk[TASK3_STK_SIZE - 1],//堆栈指针 (INT8U)TASK3_PRIO); //优先级 //

os_err = OSTaskCreate(task4, //任务4 (void *)0, //不带参数

(OS_STK *)&task4_stk[TASK4_STK_SIZE - 1],//堆栈指针 (INT8U)TASK4_PRIO);

OSTaskDel(OS_PRIO_SELF); //任务建立完成删掉这个任务 }

所用main函数为 int main(void) {

GPIO_InitTypeDef GPIO_InitStructure;

SystemInit();

NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA , ENABLE);

RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA , DISABLE);

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; GPIO_Init(GPIOA, &GPIO_InitStructure);

OSInit();

OSTaskCreate(startup, (void *)0, &startup_stk[STARTUP_TASK_STK_SIZE-1], STARTUP_TASK_PRIO);

OSStart(); return 0; }

编译通过,下载到目标板上,运行4个灯同时闪了起来.移植成功. 本人刚学stm32 和ucos不久,希望大家能多多指正.


使用IAR移植ucos到stm32的步骤.doc 将本文的Word文档下载到电脑
搜索更多关于: 使用IAR移植ucos到stm32的步骤 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219