资源简介
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
- 下一篇:手机无线充电技术的研究
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- Spire API文档
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- The direction of synaptic plasticity mediated
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- STM32基于rt_thread操作系统的SDHC卡文件
- 51模拟SPI读写SD卡(包括Fat和Fat32文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- 28335写的用spi读取传感器数据并用CA
- STM32F103 CC2500完整驱动(模拟SPI)
川公网安备 51152502000135号
评论
共有 条评论