当前位置: 技术问答>linux和unix
linux 下串口接受问题
来源: 互联网 发布时间:2016-01-13
本文导语: #include /*标准输入输出定义*/ #include /*标准函数库定义*/ #include /*Unix标准函数定义*/ #include /**/ #include /**/ #include /*文件控制定义*/ #include...
#include /*标准输入输出定义*/
#include /*标准函数库定义*/
#include /*Unix标准函数定义*/
#include /**/
#include /**/
#include /*文件控制定义*/
#include /*PPSIX终端控制定义*/
#include /*错误号定义*/
#include
#define _POSIX_SOURCE 1
#define FALSE 0
#define TRUE 1
/***@brief 设置串口通信速率
*@param fd 类型 int 打开串口的文件句柄
*@param speed 类型 int 串口速度
*@return void*/
int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300,
B38400, B19200, B9600, B4800, B2400, B1200, B300, };
int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300,
38400, 19200, 9600, 4800, 2400, 1200, 300, };
void set_speed(int fd, int speed)
{
int i;
int status;
struct termios Opt;
tcgetattr(fd, &Opt);
for ( i= 0; i 0)
set_speed(fd,19200);
else
{
printf("Can't Open Serial Port!n");
exit(0);
}
if (set_Parity(fd,8,1,'N')== FALSE)
{
printf("Set Parity Errorn");
exit(1);
}
while(1)
{
nread = read(fd,buff,255);
if(nread>0)
{
buff[nread]=0;
printf("%d,%sn",nread,buff);
write(fd,buff,5);
}
}
close(fd);
exit(0);
}
这段代码源于网上,可以接受到数据,但不能发送
想实现数据接收后经过处理再发送出去,该怎么修改,请指教!!
#include /*标准函数库定义*/
#include /*Unix标准函数定义*/
#include /**/
#include /**/
#include /*文件控制定义*/
#include /*PPSIX终端控制定义*/
#include /*错误号定义*/
#include
#define _POSIX_SOURCE 1
#define FALSE 0
#define TRUE 1
/***@brief 设置串口通信速率
*@param fd 类型 int 打开串口的文件句柄
*@param speed 类型 int 串口速度
*@return void*/
int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300,
B38400, B19200, B9600, B4800, B2400, B1200, B300, };
int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300,
38400, 19200, 9600, 4800, 2400, 1200, 300, };
void set_speed(int fd, int speed)
{
int i;
int status;
struct termios Opt;
tcgetattr(fd, &Opt);
for ( i= 0; i 0)
set_speed(fd,19200);
else
{
printf("Can't Open Serial Port!n");
exit(0);
}
if (set_Parity(fd,8,1,'N')== FALSE)
{
printf("Set Parity Errorn");
exit(1);
}
while(1)
{
nread = read(fd,buff,255);
if(nread>0)
{
buff[nread]=0;
printf("%d,%sn",nread,buff);
write(fd,buff,5);
}
}
close(fd);
exit(0);
}
这段代码源于网上,可以接受到数据,但不能发送
想实现数据接收后经过处理再发送出去,该怎么修改,请指教!!
|
fd = open( dev, O_RDWR | O_NOCTTY );