#define MU_IN_BF_LEN (150)
#define MU_OUT_BF_LEN (150)
uint8_t inbuf[MU_IN_BF_LEN]={0}; //用于保存:从RX中断缓冲buffer中读出的数据
uint8_t outbuf[MU_OUT_BF_LEN]={0};//用于保存:提取出的一个完整帧
#define UART1_RX_RINGBUF_LEN (250)
static uint8_t uart1_rx_ringbuf[UART1_RX_RINGBUF_LEN]={0};
static struct rt_ringbuffer uart1_rx_ringbuffer_controller={0};
#define UART1_TX_RINGBUF_LEN (250)
static uint8_t uart1_tx_ringbuf[UART1_TX_RINGBUF_LEN]={0};
static struct rt_ringbuffer uart1_tx_ringbuffer_controller={0};
int init_uart1_link(void)
{
rt_ringbuffer_init(&uart1_rx_ringbuffer_controller,
uart1_rx_ringbuf,
UART1_RX_RINGBUF_LEN);
rt_ringbuffer_init(&uart1_tx_ringbuffer_controller,
uart1_tx_ringbuf,
UART1_TX_RINGBUF_LEN);
uart1_send_state=UART1_SEND_IDLE;
return 0;
}
/*
direct : 0->left move(low bytes out) ,1->right move(high bytes out)
len : move len */
void buffShift(unsigned char *buf,int bufLen,unsigned char direct,int moveLen)
{
int i=0;
if(direct==0)
{//left move
for(i=0;i<bufLen;i++)
{
if(i+moveLen>=bufLen)
{
buf[i]=0;
}
else
{
buf[i]=buf[i+moveLen];
}
}
}
else
{//right move
for(i=bufLen-1;i>=0;i--)
{
if(i-moveLen<0)
{
buf[i]=0;
}
else
{
buf[i]=buf[i-moveLen];
}
}
}
}
/*
start feed at buf[StartFeedAddr],StartFeedAddr++, total feedLen Bytes,
cycle loop mode
return :the real feed bytes ,should not over the DstbufMax;
*/
uint16_t buffFeed(unsigned char *Dstbuf,
unsigned char *Srcbuf,
uint16_t StartFeedAddr,
uint16_t feedLen,
uint16_t DstbufMax
)
{
uint16_t i=0;
for(i=0;i<feedLen;i++)
{
Dstbuf[StartFeedAddr+i]=Srcbuf[i];
if(StartF