第三周
学习任务:
1. 熟练掌握ucos-ii信号量集机制;(事件标志组管理)
2. 了解ucos-ii内存管理机制
参考:
嵌入式实时操作系统μCOS-II原理及应用 任哲编著
STM32F407 UCOS开发手册 正点原子
嵌入式实时操作系统uc/os-ii(第二版) 邵贝贝著
实验任务:
1. 应用信号量集编写三个task,task1用来控制步进电机的运动,task2发送一个信号,task3发送一个信号,当这两个task都发送了信号之后task1控制步进电机启动。
当启动开关按键5、6时,电机开启,task1用来等待,task2和task3发送信号
注:这里的外部中断函数要加 OSIntEnter() 及 OSIntExit()
按键key.c
#include"key.h"
#include"stm32f2xx.h"
void KEY_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//对pe0~pe5进行初始化
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
//GPIO_SetBits(GPIOE, GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5);
}
EXIT.c
#include"stm32f2xx.h"
#include"EXTI.h"
#include"key.h"
#include"bsp_gpio.h"
void EXTIX_Init(void)
{
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;