|
发表于 2023-10-24 12:29:31
|
显示全部楼层
本帖最后由 fuu 于 2023-10-24 12:32 编辑
- struct packet
- {
- uint8_t type;
- uint8_t len;
- uint8_t *buf;
- }
- void uart_tx_thread_entry(void *parameter)
- {
- struct packet msg1;
- struct packet msg2;
- uint8_t buf1[]={1,2,3};
- uint8_t buf2[]={'a','b','c'};
-
- uart_rec_queue = xQueueCreate(10, 128);
-
- msg1.type = TYPE1;
- msg1.len = sizeof(buf1);
- msg1.buf = buf1;
-
- msg2.type = TYPE2;
- msg2.len = sizeof(buf2);
- msg2.buf = buf2;
-
- while(1)
- {
- vTaskDelay(1000);//1s
- xQueueSend(uart_rec_queue, &msg1, 0);
- vTaskDelay(1000);//1s
- xQueueSend(uart_rec_queue, &msg2, 0);
- }
- }
- void uart_rx_thread_entry(void *parameter)
- {
- struct packet msg;
- uint8_t buf[128];
-
- while(1)
- {
- if(xQueueReceive(uart_rec_queue, &msg, portMAX_DELAY) == pdTRUE)
- {
- switch(msg.type)
- {
- case TYPE1:
- memcpy(buf, msg.buf, msg.len);
- break;
- case TYPE2:
- //code
- break;
- }
- }
- }
- }
复制代码
现敲的几行代码,大概是这个意思,传递结构体的首地址,接收端再复制到缓存处理 |
|