TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310 串口ringbuffer测试

在uartecho例程想研究一下ringbuffer,我怎么能把ringbuffer里数据读出来呢?目前只能看到这些资料,如果用int RingBuf_getCount(RingBuf_Handle object);函数,那么RingBuf_Handle在哪里创建的?

Alvin Chen:

请看:
dev.ti.com/…/_ring_buf_8h.html

Alvin Chen:

回复 Alvin Chen:

RingBuf_Handle 是
dev.ti.com/…/struct_ring_buf___object.html
这个RingBuf_Handle具体使用 是在uart handle 里面衍生出来的
C:\ti\simplelink_cc13x0_sdk_2_40_00_20\source\ti\drivers\uart 里面的UARTCC26X0.c

user4959119:

回复 Alvin Chen:

我就是想找到这个buffer创建时所产生的RingBuf_Handle ,之前看过一个帖子有串口read底层代码找不到了。直接用这个数组uartCC26XXRingBuffer[CC1310_LAUNCHXL_UARTCOUNT]效果一样不?

Alvin Chen:

回复 user4959119:

typedef struct RingBuf_Object *

unsigned char *buffer
size_tlength
size_tcount
size_thead
size_ttail
size_tmaxCount

你可以去看看
static int32_t readData2RingBuf(UART_Handle handle, int32_t size)
{int32_treadIn;UARTCC26XX_Object*object;UARTCC26XX_HWAttrsV2 const*hwAttrs;
/* Get the pointer to the object and hwAttrs */object = handle->object;hwAttrs = handle->hwAttrs;
/* Fill up RingBuf */while (size && (readIn = (int32_t)UARTCharGetNonBlocking(hwAttrs->baseAddr)) != -1) {
DebugP_log2("UART:(%p) Read character 0x%x",hwAttrs->baseAddr, (uint8_t)readIn);
size–;RingBuf_put(&object->ringBuffer, (unsigned char)readIn);}
return (size);
}
是如何去取这个handle的, 对于ringbuf 没有太多的参考。

赞(0)
未经允许不得转载:TI中文支持网 » CC1310 串口ringbuffer测试
分享到: 更多 (0)