串口循环buff结构体
typedef struct ringbuffer {
uint8_t *pbyBuf; //接收buff
uint16_t hwSize; //接收buff的长度
uint16_t hwWrite; //接收buff写入指针位置
uint16_t hwRead; //接收buff读出指针位置
uint16_t hwDataLen;//当前接收buff,接收到的未被移走的数据个数
} ringbuffer_t;
固定个数接收中断大致流程
1:管脚初始化
2://接收缓存配置,实例化接收ringbuf,将ringbuf接收数据缓存指向用户定义的的接收buffer(g_byRxBuf)
//需要传入参数:串口设备/ringbuf结构体指针/接收buffer/接收buffer长度
csi_uart_set_buffer(UART1, &g_tRingbuf, g_byRxBuf, sizeof(g_byRxBuf));
3:配置初始化
4:判断是否接收到指定个数的数据,所有接收完成,再发出去