1 Star 0 Fork 0

RTsien / Code Fragments

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
串口轮询二级缓冲方式.c 789 Bytes
一键复制 编辑 原始数据 按行查看 历史
Rtsien 提交于 2014-05-26 14:18 . first commit
void *GpsRethread(void *arg)
{
GpsReThreadFlag=TRUE;
while(GpsReThreadFlag)
{
usleep(10);
GpsRePro();
}
}
void GpsRePro()
{
u8 str[1024];
u8 flag7e[3];
int i,k,ret,start,end;
if(m_GpsStatu!=GPSSTATU_OPENED)
{
return;
}
ret=SerialRead(GpsDev_fd,str,1024);//$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
if(ret>0)
{
if((GpsReLen+ret)>=GPSREBUFFMAX)
{
GpsReLen=0;
}
memcpy(GpsReBuff+GpsReLen,str,ret);
GpsReLen+=ret;
for(i=0,k=0;i<GpsReLen;i++)
{
if(GpsReBuff[i]==0x7e)
{
flag7e[k++]=i;
if(k>=2)
{
break;
}
}
}
if(k>=2)
{
GpsDataPro(GpsReBuff+flag7e[0],flag7e[1]-flag7e[0]+1);
GpsReLen=0;
}
}
}
#define GPSREBUFFMAX 2*1024
u8 GpsReBuff[GPSREBUFFMAX];
u32 GpsReLen;
C
1
https://gitee.com/rtsien/Code-Fragments.git
git@gitee.com:rtsien/Code-Fragments.git
rtsien
Code-Fragments
Code Fragments
master

搜索帮助