日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FreeRtos osMessagePut osMessageGet 函数

發布時間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FreeRtos osMessagePut osMessageGet 函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

任務:使用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;

總結

以上是生活随笔為你收集整理的FreeRtos osMessagePut osMessageGet 函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。