不同的方式的分包源码:
#include "stdlib.h"
typedef unsigned char uint8_t;
#define MAX_PACKAGE_LEN 8 //20 或者 64 或者 16
void uart_tx(uint8_t *wr_buf, uint8_t buf_len)
{
uint8_t i = 0;
if(buf_len > MAX_PACKAGE_LEN)
return ;
/*
for(i=0; i<buf_len; i++ )
{
printf("%c",*wr_buf++);
}
*/
printf("%.*s", buf_len, wr_buf);
}
fenbao1(uint8_t *wr_buf, uint8_t buf_len)
{
while(1)
{
if(buf_len > MAX_PACKAGE_LEN)
{
uart_tx(wr_buf, MAX_PACKAGE_LEN);
buf_len -= MAX_PACKAGE_LEN;
wr_buf += MAX_PACKAGE_LEN;
}
else
{
uart_tx(wr_buf, buf_len);
break;
}
}
}
//方法二:
fenbao2(uint8_t *wr_buf, uint8_t buf_len)
{
while(buf_len > 0)
{
if(buf_len > MAX_PACKAGE_LEN)
{
uart_tx(wr_buf, MAX_PACKAGE_LEN);
buf_len -= MAX_PACKAGE_LEN;
wr_buf += MAX_PACKAGE_LEN;
}
else
{
uart_tx(wr_buf, buf_len);
buf_len = 0;
}
}
}
//方法三:
fen