• 大小: 20KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: C/C++
  • 标签: GTK+  串口  界面  Linux  ARM  

资源简介

Linux上的串口调试助手,GTK+2.0纯C语言编写,界面文件,源代码,注释,功能说明文档,bug说明都有。

资源截图

代码片段和文件信息

#include 
#include               // printf
#include               // open
#include              // bzero
#include              // exit
#include           // times
#include           // pid_t
#include  //termios tcgetattr() tcsetattr()
#include 
#include           // ioctl
#include “serial.h“
/*********************全局变量声明区***************************************/
/********************** 串口设置 *************************************/
#define TTY_DEV “/dev/ttyUSB“ //端口路径

#define TIMEOUT_SEC(buflenbaud) (buflen*20/baud+2)  //接收超时
#define TIMEOUT_USEC 0
int fdcom; //串口文件描述符
int status=0; //  串口状态  打开/关闭 
/**********************串口设置参数**********************************/
char dev_temp;
guint baud_temp;
gchar databit_temp;
gchar checkbit_temp;
gchar stopbit_temp;


GMainLoop* loop;
GIOChannel* channel;
GSource* source;

gchar *serial_dev;
gchar *serial_baud;
gchar *check_bit;
gchar *data_bit;
gchar *stop_bit;

/***********************发送接受区的 textview 控件相关**********************/
GtkWidget *recv_show_textview*send_show_textview;
GtkTextBuffer *send_buffer*recv_buffer;
gchar show_data_buf[1024];

/***********************函数声明区******************************************/
void send_show ();
void recv_show (gchar *recv_data);
void char_to_int(gchar *ox_datagchar *char_data);
void int_to_char(gchar *char_datagchar *ox_data);
void thread1(void);


/**********************串口函数定义**************************************/
/*******************************************
 * 获得端口名称
********************************************/
char *get_ptty(pportinfo_t pportinfo)
{
char *ptty;

switch(pportinfo->tty){
case ‘0‘:{
ptty = TTY_DEV“0“;
}break;
case ‘1‘:{
ptty = TTY_DEV“1“;
}break;
case ‘2‘:{
ptty = TTY_DEV“2“;
}break;
}
return(ptty);
}

/*******************************************
 * 波特率转换函数(请确认是否正确)
********************************************/
int convbaud(unsigned long int baudrate)
{
switch(baudrate){
case 2400:
return B2400;
case 4800:
return B4800;
case 9600:
return B9600;
case 19200:
return B19200;
case 38400:
return B38400;
case 57600:
return B57600;
case 115200:
return B115200;
default:
return B9600;
}
}

/*******************************************
 * Setup comm attr
 * fdcom: 串口文件描述符,pportinfo: 待设置的端口信息(请确认)
 *
********************************************/
int PortSet(int fdcom const pportinfo_t pportinfo)
{
struct termios termios_old termios_new;
int  baudrate tmp;
char databit stopbit parity fctl;

bzero(&termios_old sizeof(termios_old));
bzero(&termios_new sizeof(termios_new));
cfmakeraw(&termios_new);
tcgetattr(fdcom &termios_old); //get the serial port attributions
/*------------设置端口属性----------------*/
//baudrates
baudrate = convbaud(pportinfo -> baudrate);
cfsetispeed(&termios_new baudrate); //填入串口输入端的波特率
cfsetospeed(&termios_new baudrate); //填入串口输出端的波特率
termios

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件         135  2012-07-16 12:06  makefile
     文件       27965  2012-07-17 20:12  serial.glade
     文件        1337  2012-07-16 11:11  serial.h
     文件       27965  2012-07-17 20:12  serial.xml
     文件       23563  2012-07-17 20:02  serialtools
     文件       18164  2012-07-17 20:02  serialtools.c

评论

共有 条评论