作为在中断中调用FreeRTOS系统的API函数的参考,disp_str()是显示屏的显示函数会将传入的字符串进行显示。

void TIM5_Int_Init(u16 arr,u16 psc)
{TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;NVIC_InitTypeDef   NVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);   //ʱÖÓʹÄÜTIM_TimeBaseStructure.TIM_Period = arr;TIM_TimeBaseStructure.TIM_Prescaler = psc;TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure);TIM_ITConfig(TIM5,TIM_IT_Update,ENABLE);NVIC_InitStructure.NVIC_IRQChannel = TIM5_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 8;   //保证优先级受FreeRTOS系统的控制NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM5,ENABLE);
}
extern QueueHandle_t Message_Queue;
extern void disp_str(u8* str);
void TIM5_IRQHandler(void)
{u8 *buffer;BaseType_t xTaskWokenByReceive = pdFALSE;  BaseType_t err;if(TIM_GetITStatus(TIM5,TIM_IT_Update) == SET){buffer = mymalloc(USART_REC_LEN);if(Message_Queue != NULL)   ¦{memset(buffer,0,USART_REC_LEN);    err = xQueueReceiveFromISR(Message_Queue,buffer,&xTaskWokenByReceive);   //保证需要进行任务切换的时候进行任务切换//xTaskWokenByReceive的具体数值将由函数的返回值确定if(err == pdTRUE){disp_str(buffer);                     }}myfree(buffer);portYIELD_FROM_ISR(xTaskWokenByReceive); //根据xTaskWokenByReceive的值决定系统是否要进行任务的切换,结合上一步对xTaskWokenByReceive的调用刚好实现,让系统决定中断决定中断疏忽局处理完成之后是否进行任务的切换。}TIM_ClearITPendingBit(TIM5,TIM_IT_Update);
}

嵌入式FreeRTOS系统,在中断中调用FreeRTOS系统的API函数相关推荐

  1. STM32+Cube MX使用MPU6050 DMP时,在外部中断中调用read_dmp函数发生系统卡死问题的根本原因分析

    系统环境 硬件: MCU:STM32F405RGT6 IMU:MPU6050 软件: 开发环境:KEIL MDK-ARM uVision5 MPU6050使用DMP 复现步骤 程序中MPU6050 D ...

  2. STM32中断中调用OLED显示出现OLED花屏

    STM32中断中调用OLED显示出现OLED花屏 在TIM5中断处理函数中,我写了OLED显示,经过DEBUG发现程序执行到OLED显示语句的时候,OLED就会花屏. //中断服务处理函数 void ...

  3. android闹钟例子,自己软件中调用android系统闹钟

    [实例简介] 自己软件中调用android系统闹钟! 综合网上资料,得来 [实例截图] [核心代码] 54ba60f3-fa09-4e61-b3ab-c4fca16d07b2 └── CallSyst ...

  4. html调用腾讯地图定位当前位置,vue web项目中调用腾讯地图API获取当前位置的经纬度...

    vue web项目中调用腾讯地图API获取当前位置的经纬度 vue web项目中调用腾讯地图API获取当前位置的经纬度 在main.js 中添加一下代码 import axios from 'axio ...

  5. python中调用什么模块的什么函数来实现求实数平方根_python语言基础与应用答案...

    python语言基础与应用答案 python3不再区分整数和长整数,统一为()类型. python可以使用(____)函数打开文件,这个函数默认的打开模式为(____). a=[3]alist=[1, ...

  6. 如何在智能合约中调用另一个合约的函数

    智能合约是在区块链中被执行的一段程序,因为它们在区块链上执行,所以不依赖于任何的中心化服务器.目前最主流的智能合约编程语言是 Solidity. 在以太坊区块链中,智能合约可以和其他已经部署的智能合约 ...

  7. 双系统的电脑中如何完美系统其中一个操作系统

    做软件开发的人员很多朋友为了开发方便和学习,都有安装双系统的习惯,可是卸载其中一个操作系统是个比较麻烦的事情,下面整理了常用的双系统搭配卸载方案,希望对大家有所帮助. 一.WIN7+XP,卸载XP 1 ...

  8. 在matlab中 编程n,Matlab与C++混合编程 1--在C++中调用自己写的matlab函数

    在Visual Studio中使用C++中调用MATLAB程序 在matlab中可以通过mbuild工具将.m文件编译成dll文件供外部的C++程序调用,这样就可以实现matlab和C++混合编程的目 ...

  9. oracle中怎么获取系统时间,Oracle中如何获取系统当前时间

    Oracle中如何获取系统当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; ORACLE里获取一个时间的年.季.月.周.日 ...

最新文章

  1. C#中的深克隆的两种方式
  2. 战双帕弥什显示服务器满员,战双帕弥什星火和信标服务器有何区别
  3. 好的自我介绍,面试成功一大半
  4. php创建表设置编码,教您在Zend Framework里如何设置数据库编码以及怎样给数据表设定前缀!...
  5. 多用户文件系统java实现_为什么要有文件系统?文件系统都有那些种类?
  6. oracle查询一张表的主键,Oracle查询表主键、外键
  7. 【报告分享】中美人工智能之比较分析报告.pdf(附下载链接)
  8. linux iptables添加mysql访问
  9. Caffe学习:pycaffe利用caffemodel进行分类(2)
  10. 简单的U盘病毒清理工具 v0.5
  11. 格雷码详解(分治法)
  12. CGB2202-DAY02-IO低级流与高级流
  13. window的mysql开机自动启动
  14. PHP长方体体积,长方体体积公式
  15. 华为千亿美金年报里的5G、AI、云计算
  16. 满纸荒唐言:Processing 寻觅文字魅力篇
  17. photo技能大全,想学ps的来看看
  18. 富士施乐FujiXeroxDocuCentre-V2060扫描到PC
  19. python:PyQt5 简单示例
  20. 腾讯社招 —— 腾讯游戏后端工程师(一面)

热门文章

  1. 法学教授:洋文凭情结是对教育体制的嘲弄
  2. hdu 1546(最短路)
  3. hdu 1598(最小生成树变形)
  4. hdu 5172(RMQ+前缀和)
  5. 基于各种基础数据结构的SPFA和各种优化
  6. Photoshop用户必知必会的28个快捷键
  7. 想写总结,却变成了胡诌。。。
  8. 数据采集中的采样率、缓冲区大小以及,每通道采样数之间的关系
  9. 吴恩达 coursera ML 第一课总结
  10. 单核工作法9:消减待办任务