举例

void task1_task(void *pvParameters)
{
u8 key;
BaseType_t err; while(1)
{
key=KEY_Scan(0); //扫描按键
if(key)
{
err=xTaskNotify((TaskHandle_t )Keyprocess_Handler, //接收任务通知的任务句柄
(uint32_t )key, //任务通知值
(eNotifyAction )eSetValueWithOverwrite); //覆写的方式发送任务通知
if(err==pdFAIL)
{
printf("任务通知发送失败\r\n");
}
} vTaskDelay(10); //延时10ms,也就是10个时钟节拍
}
} void Keyprocess_task(void *pvParameters)
{
uint32_t NotifyValue;
BaseType_t err; while(1)
{
err=xTaskNotifyWait((uint32_t )0x00, //进入函数的时候不清除任务bit
(uint32_t )ULONG_MAX, //退出函数的时候清除所有的bit
(uint32_t* )&NotifyValue, //保存任务通知值
(TickType_t )portMAX_DELAY); //阻塞时间
if(err==pdTRUE) //获取任务通知成功
{
switch((u8)NotifyValue)
{
case WKUP_PRES:
printf("WKUP_PRES here\r\n");
break;
case KEY2_PRES:
printf("KEY2_PRES here\r\n");
break;
case KEY0_PRES:
printf("KEY0_PRES here\r\n");
break;
}
}
}
}

实验现象

最新文章

  1. Nim编码风格
  2. block(闭包)
  3. 各种python环境的问题
  4. anti-pattern - Hard coding
  5. js 数组 var arr=[] 的用法总结
  6. Nginx的Upload上传模块
  7. JVM GC知识回顾
  8. 用Python浅析股票数据
  9. Java后缀数组-求sa数组
  10. IT轮子系列(三)——如何给返回类型添加注释——Swagger的使用(二)
  11. MyBatis缓存策略
  12. ORA-12557协议适配器不可加载
  13. Centos7.4安装配置haproxy和Keepalived补充内容
  14. fang99-三号线与四号线新盘
  15. docker 常用操作
  16. Linux 下上手 STC89C52RC
  17. IIS6 301重定向和IIS7 301重定向
  18. web前端面试小结(1)
  19. k最邻近算法——使用kNN进行手写识别
  20. hdu 3599(最短路+最大流)

热门文章

  1. Python进阶-I 初识函数(function)
  2. 微信H5页面分享获取JS-SDK
  3. axios post方式请求x-ww格式的数据
  4. 【LG5504】[JSOI2011]柠檬
  5. 根据IP查询所在城市接口(查询用户所在城市)
  6. db服务器参数优化
  7. cad.net cad宋体问号 删除 KT_ST.ttf
  8. jdk 1.6 新特性
  9. PHP微信发红包简明教程
  10. [原创]小巧免杀的端口转发工具PortTran(附.net源码)