当前位置: 技术问答>linux和unix
自己写的一个linuxc++读串口类的读出来的数据是一段一段的。请问是什么原因?
来源: 互联网 发布时间:2016-11-30
本文导语: 从串口读数据,读出来显示: $GPGSV, 3,1,09,22, 75,257,,2 5,58,140,, 18,56,167, ,14,49,32 9,51*71 $ GPGSV,3,2 ,09,12,44, 065,51,31, 27,250,,0 9,20,047,4 7,15,09,1 00,*72 $G PGSV,3,3, 09,27,07,0 53,43*43 而用他人的读串口的程序(俺没他代码) 显示: $GPGSV,3...
从串口读数据,读出来显示:
$GPGSV,
3,1,09,22,
75,257,,2
5,58,140,,
18,56,167,
,14,49,32
9,51*71
$
GPGSV,3,2
,09,12,44,
065,51,31,
27,250,,0
9,20,047,4
7,15,09,1
00,*72
$G
PGSV,3,3,
09,27,07,0
53,43*43
而用他人的读串口的程序(俺没他代码)
显示:
$GPGSV,3,1,09,22,75,257,,25,58,140,,18,56,167,,14,49,329,52*72
$GPGSV,3,2,09,12,44,065,51,31,27,250,,09,20,047,47,15,09,100,*72
$GPGSV,3,3,09,27,07,053,43*43
ctty.h
ctty.cpp
$GPGSV,
3,1,09,22,
75,257,,2
5,58,140,,
18,56,167,
,14,49,32
9,51*71
$
GPGSV,3,2
,09,12,44,
065,51,31,
27,250,,0
9,20,047,4
7,15,09,1
00,*72
$G
PGSV,3,3,
09,27,07,0
53,43*43
而用他人的读串口的程序(俺没他代码)
显示:
$GPGSV,3,1,09,22,75,257,,25,58,140,,18,56,167,,14,49,329,52*72
$GPGSV,3,2,09,12,44,065,51,31,27,250,,09,20,047,47,15,09,100,*72
$GPGSV,3,3,09,27,07,053,43*43
ctty.h
#ifndef CTTY_H
#define CTTY_H
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
//最大设备名长度
#define DEVICE_NAME_MAX_LENGTH 100
class CTty
{
public:
CTty();
virtual ~CTty();
//主要使用:
void setDeviceNameBaudrate(const char* devicename, unsigned int baud_rate);//设置串口设备名和波特率
bool OpenSet();//打开并初始化设备
int getFd();//得到设备fd号
int Read(char* buf, unsigned int maxsize);//读
int Wrtie(char* buf, unsigned int bufsize);//写
bool Close();//关闭设备
//非主要使用:
bool Open();//打开设备
bool Set();//设置设备
void setDeviceConfig(unsigned char data_bit,unsigned char stop_bit,char parity);
void setDeviceName(const char* devicesname);
void setBaudRate(unsigned int baud_rate);
void setDatabits(unsigned char data_bit);
void setStopbits(unsigned char stop_bit);
void setParity(char parity);
private:
int m_fd;
char m_devicename[DEVICE_NAME_MAX_LENGTH];
unsigned int m_baud_rate;
unsigned char m_data_bits;
unsigned char m_stop_bits;
char m_parity;
};
#endif
ctty.cpp
#include "ctty.h"
#include
#define DEFAULT_DEVICE_NAME "/dev/ttyS1"
#define DEFAULT_BAUD_RATE 115200
#define DEFAULT_DATA_BITS 8
#define DEFAULT_STOP_BITS 1
#define DEFAULT_PARITY 'N'
CTty::CTty()
{
setDeviceNameBaudrate(DEFAULT_DEVICE_NAME,DEFAULT_BAUD_RATE);
setDeviceConfig(DEFAULT_DATA_BITS,DEFAULT_STOP_BITS,DEFAULT_PARITY);
}
CTty::~CTty()
{
Close();
}
bool CTty::OpenSet()
{
if(Open())
{
if(Set())
{
#ifdef DEBUG
std::cout
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!