资源简介
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个文件信息
- 上一篇:信号与系统典型题解析与实战模拟(吴京).pdf
- 下一篇:手机无线充电技术的研究
相关资源
- STM32F4 CAN1 通讯源码
- 基于STM32F4的小波变换移植含小波分解
- Enfocus PitStop Pro 10破解补丁+高清PDF图文
- 飞控stm32程序
- NB物联网模块 STM32+BC28
- stm32f107ptp时钟同步
- ENC28J60最全资料,含51AVRLPCSTM32程序源
- GY6500源代码
- (启示录)Inspired: How To Create Product
- STM32F407 双轮小车 定时器编码器模式测
- 基于STM32C8T6的按键温度双模式控制风
- stm32f103+dht11温湿度传感器例程
- 基于STM32F103的USB键盘程序代码
- stm32 f103RCT6用正点原子Mini板可用的R
- STM32f103循迹小车控制程序源码
- STM32实现GPRS与服务器数据传输
- STM32F103基于keil写的简易示波器
- STM32_旋转倒立摆.rar
- STM32_F1系列FreeRTOS工程模板
- STM32做的一个MP4 实现了长文件名,M
- STM32F1驱动APDS9960识别手势
- 基于RFID的签到系统设计
- 电容传感器pcap01数据读取及发送程序
- 基于stm32 和LCD1602的电子密码锁课程设
- 基于stm32F103c8t6和GPS模块做的小玩意儿
- 使用STM32实现PMSM电机的正弦驱动
- 中景园电子0.96OLED显示屏_STM32_F103C8系
- stm32rc522
- STM32F407ADC采集信号通过DMA发送给内存
- STM32F107VCT6 开发板原理图和PCB
评论
共有 条评论