STM32_RTOS_V2编程模板1-消息队列

#pragma region QUEUE1
// 1DEFINE
osMessageQueueId_t queueDemo1 = NULL;

// 2INIT
queueDemo1 = osMessageQueueNew(8, sizeof(uint16_t), NULL);

// 3PUT
static uint16_t q_tx_sn = 0;
static uint16_t Demo1Val = 0;
extern osMessageQueueId_t queueDemo1;
Demo1Val = 0xAA;
if (osOK == osMessageQueuePut(queueDemo1, &Demo1Val, 0U, 0U)) {
    test_rtt_printf(0, 0, "queueDemo1 PUT  sn= %05d!\r\n", ++q_tx_sn);
}

// 4GET
static uint16_t q_rx_sn = 0;
static uint16_t Demo1Val = 0;
extern osMessageQueueId_t queueDemo1;
if (osOK == osMessageQueueGet(queueDemo1, &Demo1Val, NULL, 0U)) {
    test_rtt_printf(0, 0, "queueDemo1 GOT  sn= %05d!\r\n", ++q_rx_sn);
    if (Demo1Val == 0xAA) {
    }
}
#pragma endregion

#pragma region QUEUE2
// 1TYPEDEF bsp.h or include.h
typedef struct {
    uint16_t len;
    uint8_t buf[64];
} MSG_S;

// 2DEFINE
osMessageQueueId_t queueDemo2 = NULL;

// 3INIT
queueDemo2 = osMessageQueueNew(8, sizeof(MSG_S*), NULL);

// 4PUT
static uint16_t q_tx_sn = 0;
static MSG_S v_g_tmsg;
static MSG_S* p_g_tmsg = &v_g_tmsg;
extern osMessageQueueId_t queueDemo2;

p_g_tmsg->len = 0x10;
memcpy(p_g_tmsg->buf, staBuf, p_g_tmsg->len);
if (osOK == osMessageQueuePut(queueDemo2, &p_g_tmsg, NULL, 0)) {
    test_rtt_printf(0, 0, "queueDemo2 tx len= %04d  sn= %05d!\r\n", p_g_tmsg->len, ++q_tx_sn);
}

// 5GET
static uint16_t q_rx_sn = 0;
static MSG_S v_g_rmsg;
static MSG_S* p_g_rmsg = &v_g_rmsg;
extern osMessageQueueId_t queueDemo2;

if (osOK == osMessageQueueGet(queueDemo2, &p_g_rmsg, NULL, 0U)) {
    test_rtt_printf(0, 0, "queueDemo2 rx len= %04d  sn= %05d!\r\n", p_g_rmsg->len, ++q_rx_sn);
}
#pragma endregion

 

posted @ 2024-01-08 00:21  realiot  阅读(58)  评论(0)    收藏  举报