• 大小: 8.35MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-17
  • 语言: 其他
  • 标签: SPI  STM32  

资源简介

STM32 SPI代码,主机SPI1发送接收都使用中断,从机SPI1发送和接收都是用中断处理。系统使用UCOS III测试,中间带有测试的数据

资源截图

代码片段和文件信息


#include “MainTask.h“


//开始任务任务函数
void start_task(void *p_arg)
{
OS_ERR err;
u8 i;
CPU_SR_ALLOC();
p_arg = p_arg;
// OS_FLAG_GRP SPI2_EVEN_GROP; //spi2的事件标志组

CPU_Init();
#if OS_CFG_STAT_TASK_EN > 0u
   OSStatTaskCPUUsageInit(&err);   //统计任务                
#endif

#ifdef CPU_CFG_INT_DIS_MEAS_EN //如果使能了测量中断关闭时间
    CPU_IntDisMeasMaxCurReset();
#endif

#if OS_CFG_SCHED_ROUND_ROBIN_EN  //当使用时间片轮转的时候
 //使能时间片轮转调度功能时间片长度为1个系统时钟节拍,既1*5=5ms
OSSchedRoundRobinCfg(DEF_ENABLED1&err);  
#endif

OS_CRITICAL_ENTER(); //进入临界区

//根据任务列表创建任务
for(i=0; tsk_info[i].task_prio!=0; ++i)
{
OSTaskCreate( tsk_info[i].p_tcb  tsk_info[i].taskp_char  tsk_info[i].taskp_ptr  tsk_info[i].parameter  tsk_info[i].task_prio  tsk_info[i].task_stk  tsk_info[i].task_stk_limit 
 tsk_info[i].task_stk_size  tsk_info[i].task_msg_qty  tsk_info[i].task_tick  tsk_info[i].user_data  tsk_info[i].task_option  tsk_info[i].err );
}
// //创建TASK1任务
// OSTaskCreate((OS_TCB  * )&Task1_TaskTCB
//  (CPU_CHAR * )“Task1 task“ 
//                 (OS_TASK_PTR )task1_task 
//                 (void * )0
//                 (OS_PRIO   )TASK1_TASK_PRIO     
//                 (CPU_STK   * )&TASK1_TASK_STK[0]
//                 (CPU_STK_SIZE)TASK1_STK_SIZE/10
//                 (CPU_STK_SIZE)TASK1_STK_SIZE
//                 (OS_MSG_QTY  )0
//                 (OS_TICK   )0
//                 (void    * )0
//                 (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR
//                 (OS_ERR  * )&err);
//  

//创建SPI2事件标志组
OSFlagCreate(&SPI2_EVEN_GROP
“SPI2 EVEN FLAG GROUP“
(OS_FLAGS) 0 //所有标志位设为0
&err);


OS_CRITICAL_EXIT(); //退出临界区
OSTaskDel((OS_TCB*)0&err); //删除start_task任务自身
}


//task1任务函数
void task1_task(void *p_arg)
{
u8 task1_num=0;
OS_ERR err;
CPU_SR_ALLOC();
p_arg = p_arg;

while(1)
{
task1_num++; //任务执1行次数加1 注意task1_num1加到255的时候会清零!?

LED0= ~LED0;
// printf(“任务1已经执行:%d次\r\n“task1_num);
if(task1_num==5) 
{
//OSTaskDel((OS_TCB*)&Task2_TaskTCB&err); //任务1执行5此后删除掉任务2
//printf(“任务1删除了任务2!\r\n“);
}
OSTimeDlyHMSM(0010OS_OPT_TIME_HMSM_STRICT&err); //延时1s

}
}

//task2任务函数
void task2_task(void *p_arg)
{
u8 task2_num=0;
OS_ERR err;
CPU_SR_ALLOC();
p_arg = p_arg;

while(1)
{
task2_num++; //任务2执行次数加1 注意task1_num2加到255的时候会清零!!
LED1=~LED1;
// printf(“任务2已经执行:%d次\r\n“task2_num);
OSTimeDlyHMSM(0010OS_OPT_TIME_HMSM_STRICT&err); //延时1s
}
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3722  2015-11-25 16:36  new\MARST\APP\drvpub.h

     文件       2817  2018-06-01 15:27  new\MARST\APP\MainTask.c

     文件       4125  2018-05-30 10:30  new\MARST\APP\MainTask.h

     文件       2236  2018-06-14 19:13  new\MARST\APP\SPI2_task.c

     文件        182  2018-06-14 15:22  new\MARST\APP\SPI2_task.h

     文件       4258  2018-05-29 19:35  new\MARST\APP\struct.h

     文件      17273  2010-06-07 10:25  new\MARST\CORE\core_cm3.c

     文件      85714  2011-02-09 14:59  new\MARST\CORE\core_cm3.h

     文件      15537  2015-03-19 15:32  new\MARST\CORE\startup_stm32f10x_hd.s

     文件      12765  2011-03-10 10:52  new\MARST\CORE\startup_stm32f10x_md.s

     文件       8982  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\misc.h

     文件      21690  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_adc.h

     文件       7555  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_bkp.h

     文件      27559  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_can.h

     文件       6573  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_cec.h

     文件       2162  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_crc.h

     文件      15233  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_dac.h

     文件       3818  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_dbgmcu.h

     文件      20754  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_dma.h

     文件       6824  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_exti.h

     文件      25445  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_flash.h

     文件      27016  2012-08-25 16:33  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_fsmc.h

     文件      20175  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_gpio.h

     文件      30029  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_i2c.h

     文件       3828  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_iwdg.h

     文件       4383  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_pwr.h

     文件      30452  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_rcc.h

     文件       3857  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_rtc.h

     文件      21863  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_sdio.h

     文件      17725  2011-03-10 10:47  new\MARST\FWLIB\STM32F10x_FWLib\inc\stm32f10x_spi.h

............此处省略674个文件信息

评论

共有 条评论