社区
其他开发语言
帖子详情
*******关于 kylix下串口读写**********
piers
2003-09-21 09:23:24
linux下
可把串口当做文件/dev/ttyS0读写
但是在程序里设置波特率不知怎么做到
有没有类似mscomm的控件可用???
...全文
159
2
打赏
收藏
*******关于 kylix下串口读写**********
linux下 可把串口当做文件/dev/ttyS0读写 但是在程序里设置波特率不知怎么做到 有没有类似mscomm的控件可用???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
piers
2003-09-29
打赏
举报
回复
thanks
swites
2003-09-22
打赏
举报
回复
mscomm是第三方控件,这里时没用的,用下面语句:
/* this is a test program for using serial port */
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <sys/ioctl.h>
#include <time.h>
#include <string.h>
#define SER_DEV1 "/dev/ttyS0"
#define SER_DEV2 "/dev/ttyS1"
#define SER_DEV3 "/dev/ttyS2"
#define SER_DEV4 "/dev/ttyS3"
#define BR1 B19200
#define BR2 B9600
#define ESC 0x1b
#define CR 0x0d
#define LF 0x0a
static struct termios ser1_old, ser1_new;
/* open_port(device) -- open serial port */
int open_port(char *ser_port) {
int fd; /* port file descriptor */
fd = open(ser_port, O_RDWR | O_NOCTTY | O_NDELAY);
if (fd == -1) {
printf ("open_port: Unable to open %s\n", SER_DEV1);
}
else fcntl(fd, F_SETFL, 0);
return (fd);
}
void init_port(int port_id) {
tcgetattr(port_id, &ser1_old); /* get the struct for old port settings */
bzero(ser1_new, sizeof(ser1_new)); /* clear struct for new port settings */
cfsetispeed(&ser1_new, BR1);
cfsetospeed(&ser1_new, BR1);
ser1_new.c_cflag |= (CLOCAL | CREAD); /* enable receiving, local state */
ser1_new.c_cflag &= ~PARENB;
ser1_new.c_cflag &= ~CSTOPB;
ser1_new.c_cflag &= ~CSIZE;
ser1_new.c_cflag |= CS8; /* set 8N1 */
ser1_new.c_cflag &= ~CRTSCTS; /* no flow control */
ser1_new.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /* raw data input */
// ser1_new.c_oflag &= ~OPOST; /* raw data output */
// ser1_new.c_lflag = ICANON; /* input mode: non-canonical, no echo */
ser1_new.c_oflag = 0; /* raw output data */
ser1_new.c_iflag = IGNPAR | ICRNL; /* raw input data */
ser1_new.c_cc[VMIN]=1;
ser1_new.c_cc[VTIME]=0;
tcflush(port_id, TCIFLUSH); /* flush the buffer */
tcsetattr(port_id, TCSANOW, &ser1_new); /* set the new parameters */
}
void restore_port(int port_id) {
tcsetattr(port_id, TCSANOW, &ser1_old); /* restore the old port settings */
}
论文研究-基于
Kylix
的
串口
通信程序设计.pdf
在深入探讨基于
Kylix
的
串口
通信程序设计之前,我们首先需要理解
串口
通信的基础概念以及
Kylix
环境下的编程特点。
Kylix
是一种集成开发环境(IDE),基于Borland公司著名的Delphi和C++ Builder RAD(Rapid Application ...
Linux下PC机
串口
与智能仪器间的数据通信.pdf
在本文中,作者吴俊安、江泽涛和涂斌探讨了在Linux环境下,个人计算机(PC)如何通过串行接口与智能仪器进行数据通信。串行接口因其连接简单、使用便捷和数据传输可靠的特点,在工业实时控制系统中广泛应用。文章...
掌握PSoc4平台的
串口
通信:中断接收与发送实例
PSoc4是由赛普拉斯半导体公司推出的创新可编程系统级芯片(SoC),它将微控制器(MCU)...通用异步收发传输器(UART)是一种广泛应用于微控制器串行通信的协议。UART 允许微控制器和外围设备通过串行线路进行数据传输。
Delphi笔记整理(二)
关于日期格式分解转换 var year,month,day:word;now2:Tdatatime; now2:=date(); decodedate(now2,year,month,day); lable1.Text :=inttostr(year)+'年'+inttostr(month)+'月'+inttostr(day)+'日'; ...
学习心得
关于结构sockaddr的定义请参考bind()。 返回值 成功则返回新的socket处理代码,失败返回-1,错误原因存于errno中。 错误代码 EBADF 参数s 非合法socket处理...
其他开发语言
3,426
社区成员
15,625
社区内容
发帖
与我相关
我的任务
其他开发语言
其他开发语言 其他开发语言
复制链接
扫一扫
分享
社区描述
其他开发语言 其他开发语言
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章