|
我信仰要崩了
threadx 的队列 拿来当 freertos的队列一样来使用
下面是具体内容:
串口中断这里初始化中断接收缓冲区
uint8_t UartRecv[1024] ={0};
中断里面处理省略(基本都一样)
发送缓冲区数据
if (tx_queue_send(&RS422_0_Queue,(VOID *)&rs422Recv, TX_NO_WAIT) == TX_SUCCESS)
{
}
任务初始化如下:
TX_QUEUE Queue;
uint8_t *mem_Queue_ptr = NULL;
uint32_t Queue_stack_size = (1 *1024);
status = tx_byte_allocate(MemHeapPtr,(void **)&mem_Queue_ptr,Queue_stack_size,TX_NO_WAIT);
if (status != TX_SUCCESS)
{
mem_rs422Queue_ptr = NULL;
status = TX_START_ERROR;
}
else
{
//清空默认脏数据
memset(mem_Queue_ptr,0,Queue_stack_size);
}
if (tx_queue_create(&Queue, (CHAR*)"Message Queue",TX_1_ULONG,mem_Queue_ptr,Queue_stack_size) != TX_SUCCESS)
{
status = TX_QUEUE_ERROR;
Error_Handler((char*)__FILE__,__LINE__);
}
发送的数据如下:(16进制)
0 1 2 3 4 5 6 7 8 9 a b c d e f 5a 54 12 13 14 15 16 17 18 19 0 5a fe
接收数据如下 16进制)
1 23 45 0 0 0 0 0
修改几个
TX_1_ULONG
TX_2_ULONG
TX_4_ULONG
TX_8_ULONG
TX_16_ULONG
都是只能接收几个字节
我发的数据是200多字节
这坑怎们填
|
|