ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CMSIS_OS的消息队列(基于cubemx)

2021-03-04 19:58:27  阅读:209  来源: 互联网

标签:CODE 队列 CMSIS StartTask04 USER cubemx void OS uint32


一、队列管理函数
osMessageQDef(name, queue_sz, type) //参数二:队列size 参数三:成员size 作用:定义os_messageQ_def_##name结构体
osMessageQ(name) //宏函数 作用:定义os_messageQ_def_##name结构体的指针
osMessageQId osMessageCreate (const osMessageQDef_t *queue_def, osThreadId thread_id); //创建队列
osStatus osMessagePut (osMessageQId queue_id, uint32_t info, uint32_t millisec); //向队列中放入消息
osEvent osMessageGet (osMessageQId queue_id, uint32_t millisec); //从队列中获取消息

二、工程创建
利用Cubemx建立工程:
在这里插入图片描述
打开工程,可以找到一个已经创建好的队列,如下:

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

接下来在任务三中向队列中放入消息,并在任务四中获取队列中的数:

void StartTask03(void const * argument)
{
  /* USER CODE BEGIN StartTask03 */
  /* Infinite loop */
	uint32_t buff[2];
	uint32_t buf[]={3,2,1,4};
	uint8_t put[]="";
  for(;;)
  {
    osDelay(1000);
		//队列
		
		osMessagePut(myQueue01Handle,buf[0],0xffff);
  }
  /* USER CODE END StartTask03 */
}

/* USER CODE BEGIN Header_StartTask04 */
/**
* @brief Function implementing the myTask04 thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartTask04 */
void StartTask04(void const * argument)
{
  /* USER CODE BEGIN StartTask04 */
  /* Infinite loop */
	uint32_t getMQ;
  for(;;)
  {
    osDelay(1000);
		//队列
		getMQ=osMessageGet(myQueue01Handle,0xffff).value.v;
		printf("%d\r\n",getMQ);
		
  }
  /* USER CODE END StartTask04 */
}

三、运行结果
在这里插入图片描述
以上就是简单的验证。

标签:CODE,队列,CMSIS,StartTask04,USER,cubemx,void,OS,uint32
来源: https://blog.csdn.net/weixin_44007438/article/details/114376218

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有