stm32cube学习笔记(2)

任务:使用stm32cube 工程的message quene management 部分api

1、使用stm32cubemx生成相应的工程

2、使能消息队列相关的函数

      #define osFeature_MessageQ   1

3、定义消息队列的名字

osMessageQDef(MsgBox, 1, int); //创建一个长度为1,单位为int的消息队列
osMessageQId  MsgBox;               //消息队列的ID  


4、创建队列

       MsgBox = osMessageCreate(osMessageQ(MsgBox), NULL);

      //穿件消息队列

5、向队列发送消息

      osMessagePut(MsgBox, 1, osWaitForever);

      注:1、这个函数实现向消息队列传送一个int数据1、并且进程一直阻塞知道

7、从队列接收消息

    osEvent  evt;

    evt = osMessageGet(MsgBox, osWaitForever);

    osEvent  数据传输过程中传输的数据 ,结构体定义如下

   typedef struct  {
       osStatus                 status;    //消息类型
     union  {
        uint32_t                    v;     //消息中为值
        void                       *p;     //消息中为指针
       int32_t               signals;     
      } value;                             ///< event value
     union  {
       osMailQId             mail_id;     ///< mail id obtained by \ref osMailCreate
       osMessageQId       message_id;     ///< message id obtained by \ref osMessageCreate
     } def;                               ///< event definition
  } osEvent;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值