2604|1

1万

帖子

16

TA的资源

版主

楼主
 

【NUCLEO-L452RE测评】+消息队列 [复制链接]

消息对列我认为就是一个FREERTOS能够识别的数组,相当于全局变量。

以前我死烦消息队列,因为我认为全局数组完全可以代替它。今天的程序感觉挺好用。

首先用STM32CUBEMX新建项目,直接打开开发板,这样管脚和串口都不用定义。

然后建立两个任务,一个每隔一分钟向消息队列发一个1,另一个任务是收消息队列里的数。

还要建立一个消息队列16个数的默认消息队列:

 

然后生成MDK5代码。之后向两个任务中加代码:

  • /* USER CODE BEGIN Header_mySendTaskfun */
  • /* USER CODE END Header_mySendTaskfun */
  • void mySendTaskfun(void const * argument)
  • {
  • /* USER CODE BEGIN mySendTaskfun */
  • for(;;)
  • {
  • osMessagePut(myQueue01Handle,1,0);
  • osDelay(1000);
  • }
  • /* USER CODE END mySendTaskfun */
  • }
  • /* USER CODE BEGIN Header_myReceivefun */
  • /* USER CODE END Header_myReceivefun */
  • void myReceivefun(void const * argument)
  • {
  • /* USER CODE BEGIN myReceivefun */
  • osEvent theEvent;
  • for(;;)
  • {
  • theEvent = osMessageGet(myQueue01Handle,osWaitForever);
  • if (theEvent.status == osEventMessage)
  • {
  • printf("Receive message......%d\n",theEvent.value.v);
  • }
  • }
  • /* USER CODE END myReceivefun */
  • }

而消息队列的声明,STM32CUBEMX早已经定义好了:

  • osMessageQDef(myQueue01, 16, uint16_t);
  • myQueue01Handle = osMessageCreate(osMessageQ(myQueue01), NULL);

 

 

接着就是编译、下载、运行:

 

 

 

可见,FREERTOS的消息队列也不是很复杂。下次评测想写一个串口接收并给消息队列的程序。

查看本帖全部内容,请登录或者注册
此帖出自stm32/stm8论坛

最新回复

ST NUCLEO-L452RE测评 汇总贴:https://bbs.eeworld.com.cn/thread-1151850-1-1.html 、   详情 回复 发表于 2020-12-21 14:32
点赞 关注
个人签名http://shop34182318.taobao.com/
https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr
 

回复
举报

1万

帖子

202

TA的资源

管理员

来自 2楼
 

ST NUCLEO-L452RE测评

汇总贴:https://bbs.eeworld.com.cn/thread-1151850-1-1.html 

此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
中星联华&ADI明日直播
直播主题:大咖面对面,轻松玩转高速ADC性能测试
直播时间:3月25日(周二)14:00
活动奖励:京东卡、双肩包

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 12

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表