历史上的今天
今天是:2025年04月25日(星期五)
2019年04月25日 | stm32cube学习笔记(2)
2019-04-25 来源:eefocus
任务:使用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;
下一篇:STM32cube学习笔记(1)
史海拾趣
|
占用大侠一点时间,提个问题::请路过的,知道的高抬贵手,感谢不尽。我使用的是 西门子的MC39I 模块做通信终端 问题如下,我做的GPRS DTU 在拨号成功以后:APN 与我发送的数据如下,一下用 A -> M 代表apn向dut 发送数据;M -> A代表DTU向APN发送 ...… 查看全部问答> |
|
使用VS2005编译TCPMP,安装了CE6.0的SDK,编译成功,但运行时总是出现错误:弹出对话框,crash.txt。 调试时发现,错误好像与common.dll在关。但本人就是无法修改(即不能发现出错的原因)使TCPMP在CE6.0上正常运行。 请有经验的朋友说说,这个错误 ...… 查看全部问答> |
|
#include sbit light=P1^0; void delay(); void main() { while(1) { light=1;//灭灯 &nbs ...… 查看全部问答> |
|
大家好,我以前学过stc89c52这款单片机,当我开始学040的时候,却有点手足无措,不知道该用它来干什么,040的64个io口是否与51的io口功能都一样呢,我现在学040,应该先做个什么东西呢,请大家指点一下… 查看全部问答> |
|
EVC4.0自带的帮助文件中声明有的东西为什么实际使用时却没有? 比如WM_MOUSEWHEEL,都用EVC的ClassWizard把OnMouseWheel()加进去了,但编译时却提示WM_MOUSEWHEEL没有声明. 还有CImageList::Create(int cx, int cy, UINT nFlags, int nInitial, int nGrow ); 帮助文件中说nFlags有ILC_COLOR,ILC_COLOR4 ...… 查看全部问答> |
|
我是光盘里面拷出来的程序GPIO的,编译可以通过但是在load的时候提示 这个是我的cmd文件: Data verfication failed at address 0x100h,我觉得在程序和数据空间分配上没有什么问题,但是就是Load不了,请工程师帮我解答一下 MEMORY { & ...… 查看全部问答> |
|
TI下载了C281x的C/C++头文件和例程SPRC097,但是找了很久也没有找到54x的头文件!~ 请问TI上有5402的头文件和例程吗 ? 是SPRC多少? 谢谢!~… 查看全部问答> |




