打印
[其他ST产品]

STM32CUBEMX配置freertos发送结构体数据

[复制链接]
285|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STM32CUBEMX配置freertos发送结构体数据 1、环境 软件:STM32CUBEMX
硬件:STM32F103C8T6
2、基本配置 主要配置2个线程,一个发送结构体数据,一个解析:



注意:itemsize要uint32_t。因为结构体传输实际传输的是他的指针。


使用特权

评论回复
沙发
雨果喝水|  楼主 | 2023-4-18 23:30 | 只看该作者
3、配置代码

首先定义一个结构体数据类型



/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */
typedef struct
{
        uint16_t cnt;
        uint32_t time;
}ledTypeDef;
/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/

使用特权

评论回复
板凳
雨果喝水|  楼主 | 2023-4-18 23:31 | 只看该作者
再配置发送线程代码:

使用特权

评论回复
地板
雨果喝水|  楼主 | 2023-4-18 23:31 | 只看该作者
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void const * argument)
{
  /* USER CODE BEGIN StartDefaultTask */
  /* Infinite loop */

        ledTypeDef led_T;
        led_T.cnt = 2;
        led_T.time = 100;
  for(;;)
  {
    osDelay(500);

          osMessagePut(ledQueueHandle,(uint32_t)&led_T,10);
          
  }
  /* USER CODE END StartDefaultTask */
}

/* USER CODE BEGIN Header_StartLedTask */

使用特权

评论回复
5
雨果喝水|  楼主 | 2023-4-18 23:31 | 只看该作者
最后配置解析代码

使用特权

评论回复
6
雨果喝水|  楼主 | 2023-4-18 23:31 | 只看该作者
void StartLedTask(void const * argument)
{
  /* USER CODE BEGIN StartLedTask */
  /* Infinite loop */
        uint16_t cnt;
        osEvent evt;
        ledTypeDef *pLed;
  for(;;)
  {
    osDelay(1);
          evt = osMessageGet(ledQueueHandle,osWaitForever);
          if(evt.status == osEventMessage)
          {
                  pLed = (ledTypeDef *)(evt.value.p);/*将空指针转换为LED结构体指针*/
                  for(cnt=0;cnt<pLed->cnt;cnt++)
                  {
                          HAL_GPIO_TogglePin(LED_SYS_GPIO_Port,LED_SYS_Pin);
                          osDelay(pLed->time);
                  }
          }
  }
  /* USER CODE END StartLedTask */
}

使用特权

评论回复
7
雨果喝水|  楼主 | 2023-4-18 23:32 | 只看该作者
收工。
要点:

1、freertos的队列要选用uint32_t格式,因为实际传输的是结构体的指针。
2、解析时,将指针要转换为结构体格式。

使用特权

评论回复
8
Wordsworth| | 2024-6-21 07:29 | 只看该作者

电阻属于一个普通的元件

使用特权

评论回复
9
Clyde011| | 2024-6-21 08:32 | 只看该作者

并且考虑到TVS相同的尺寸

使用特权

评论回复
10
万图| | 2024-6-21 10:28 | 只看该作者

当异常过压消失,恢复至高阻态

使用特权

评论回复
11
Uriah| | 2024-6-21 11:31 | 只看该作者

微控制器、数字信号控制器和处理器都具有内部的ESD钳位二极管

使用特权

评论回复
12
帛灿灿| | 2024-6-21 13:27 | 只看该作者

ESD电压一般超过导通电压

使用特权

评论回复
13
Bblythe| | 2024-6-21 14:30 | 只看该作者

模块电源选购灌封材料的时候,需要注意导热系数要能达到电子部件散热的需求,不过粘接能力不太强

使用特权

评论回复
14
周半梅| | 2024-6-21 16:26 | 只看该作者

可能击穿开关器件,

使用特权

评论回复
15
Pulitzer| | 2024-6-21 17:29 | 只看该作者

如果想要让它正常工作且不会损坏

使用特权

评论回复
16
童雨竹| | 2024-6-21 19:25 | 只看该作者

变压器副边同时对负载供电。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

76

主题

1076

帖子

0

粉丝