该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

如何通过终端读取并显示串口连接的某硬件的数据

通过一程序来代替hexdump  从而进行输入输出

用C语言实现

下面一程序为i/o输入输出,请教达人,怎样才能输入输出串口的硬件数据

#include

#include

#include

#include

#include

#include

#include

#include

voidstripcrlf(char *temp);

int write_buffer(int fd,const void *buf,int count);

intread_buffer(int fd,void *buf,int count);

int rednlsting(int socket,char *buf,int maxlen);

int readdelimstring(int socket,char *buf,int maxlen,char delim);

void exiterror(char *message,int errnum);

const char *MESSAGE_filename="Select output filename:";

const char *MESSAGE_numbers="Please enter some numbers. Use -1 when you want to exit.\n";

int main(void)

{

int outfile;

int input[80];

int buffer[80];

write_buffer(1,MESSAGE_filename,strlen(MESSAGE_filename));

readnlstring(0,input,sizeof(input));

outfile=open(input,O_WRONLY | O_CREAT | O_TRUNC,0640);

if(outfile == -1)

{

exiterror("Error opening output file:",errno);

}

write_buffer(1,MESSAGE_numbers,strlen(MESSAGE_numbers));

do

{

readnlstring(0,input,sizeof(input));

if(write_buffer(outfile,input,strlen(input))

{

exiterror("Error writing:",errno);

}

if(write_buffer(outfile,"\n",1)<0)

{

exiterror("Error writing:",errno);

}

sprint(buffer,"New:%d\n", atoi(input)*5+(20*100)-12);

if(write_buffer(outfile,buffer,strlen(buffer))<0)

{

exiterror("Error writing:",errno);

}

}

while(atoi(input)!=-1);

close(outfile);

return 0;

}

void stripcrlf(char *temp)

{

while(strlen(temp)&&temp[0]&&((temp[strlen(temp)-1] == 13)||(temp[strlen(temp)-1] ==10)))

{

temp[strlen(temp)-1] = 0;

}

}

int write_buffer(int fd,const void *buf,int count)

{

const void *pts = buf;

int status = 0,n;

if (count<0)  return (-1);

while(status!= count)

{

n=write(fd,pts+status,count-status);

if(n

status += n;

}

return(status);

}

int read_buffer(int fd,void *buf,int count)

{

void *pts=buf;

int status=0,n;

if(count<0)return(-1);

while(status!=count)

{

n = read(fd,pts+status,count-status);

if(n<1) return n;

status += n;

}

return(status);

}

int readnlstring(int socket,char *buf,int maxlen)

{

return readdelimstring(socket,buf,maxlen,'\n');

}

int readdelimstring(int socket,char *buf,int maxlen,char delim)

{

int status;

int count=0;

while(count

{

if((status=read_buffer(socket,buf+count,1))<1)

{

printf("Error reading./n");

return -1;

}

if(buf[count]==delim)

{

buf[count]=0;

return0;

}

count++;

}

buf[count]=0;

return0;

}

void exiterror(char *message,int errnum)

{

write_buffer(1,message,strlen(message));

write_buffer(1,sys_errlist[errnum],strlen(sys_errlist[errnum]));

write_buffer(1,"\n",1);

exit(255);

}

c语言如何获取串口列表,如何通过串口来读写数据,请教达人相关推荐

  1. c语言从串口获取数据,如何通过串口来读写数据,请教达人

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如何通过终端读取并显示串口连接的某硬件的数据 通过一程序来代替hexdump  从而进行输入输出 用C语言实现 下面一程序为i/o输入输出,请教达人,怎样 ...

  2. C语言怎么读取串口的数据为,如何通过串口来读写数据,请教达人

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如何通过终端读取并显示串口连接的某硬件的数据 通过一程序来代替hexdump  从而进行输入输出 用C语言实现 下面一程序为i/o输入输出,请教达人,怎样 ...

  3. R语言观察日志(part5)--利用readr和readxl包读写数据

    学习笔记,仅供参考 利用readr和readxl包读写数据 读取数据 相关函数 函数包readr和readxl提供了一系列的数据读入功能,主要函数如下: #readr包read_delim(file, ...

  4. js串口 Java web串口 调用客户端的串口 串口上云 硬件上云

    最新版本已经投入实际运行使用,demo版禁止未授权时投入商业使用 用Java串口开发,发现部署到服务器后连接不到本地的串口,蒙 于是准备用纯js调串口 发现兼容性不咋地 经过许多思考 我突然发现我会c ...

  5. 用c语言做RFID读卡程序,2.STM32读卡号读写数据代码示例3.0(C语言)

    文件名大小更新时间 2.STM32读卡号读写数据代码示例3.0(C语言)\HFRFID.uvgui.WEIZAI736912016-07-15 2.STM32读卡号读写数据代码示例3.0(C语言)\H ...

  6. R语言list.dirs函数获取目录列表实战

    R语言list.dirs函数获取目录列表实战 目录 R语言list.dirs函数获取目录列表实战 #仿真数据 #获取目录列表

  7. R语言list.files函数获取文件列表实战

    R语言list.files函数获取文件列表实战 目录 R语言list.files函数获取文件列表实战 #仿真数据 #基本语法

  8. ntrip获取源列表_Ntrip通讯协议怎么样?

    1 什么是Ntrip? CORS(Continuously Operating Reference Stations)就是网络基准站,通过网络收发GPS差分数据.用户访问CORS后,不用单独架设GPS ...

  9. ntrip获取源列表_Ntrip协议简介(转)

    1 什么是Ntrip? CORS(Continuously Operating Reference Stations)就是网络基准站,通过网络收发GPS差分数据.用户访问CORS后,不用单独架设GPS ...

最新文章

  1. Galaxy Release (v 21.05),众多核心技术栈变更
  2. 这款AI语音模型让派大星承认自己是钢铁侠,造假小扎对口型,火到挤爆服务器|在线可玩...
  3. 一线大厂Java开发所需掌握的技能要点汇总
  4. 学习css3中的动画
  5. 【STM32】 keil软件介绍--工程目标选项配置(上)
  6. 新个税法通过,起征点每月5000元,一图看清你能省多少钱
  7. Java 中各种锁的介绍
  8. 割点和桥算法——摘自《算法艺术与信息学竞赛》
  9. inputstream转fileinputstream对象_FileInputStream类:文件字节输入流
  10. 定位position(前面布局无法实现
  11. Integer类的装箱和拆箱到底是怎样实现的?
  12. [Redis]c# redis缓存辅助类
  13. matlab获取全局变量的值_全局变量在几个函数及Matlab函数中都能使用的变量.PPT...
  14. Securing Checklists
  15. word每行的末尾箭头怎么去掉_如何将word中箭头去掉 word中的箭头怎么去掉
  16. java 实现session的退出登录
  17. Markdown快捷键
  18. blog在搜索引擎的排名下降与technorati
  19. android 动态修改logo,关于app动态修改logo的问题
  20. 用python完成一个数独小游戏

热门文章

  1. 2018-06-25-Python全栈开发day21-part2-time模块介绍
  2. (原创)VS2017 C# 运行 Javasrcipt RSA 加密用户名登录 Java开发的服务器
  3. Android应用开发之(通过ClipboardManager, ClipData进行复制粘贴)
  4. CentOS7 安装NFS SSH免密码登陆
  5. 持续集成工具Hudson安装实例
  6. c语言查找功能的怎么使用方法,求C语言实现查询功能(如果选择3,如何实现查询)...
  7. c语言如果读不到数据就跳过,4,VS常见问题解决(一闪而过、等问题)不断更新...
  8. java timer 线程安全_多线程之 线程安全与控制
  9. linux网卡O I流量查询,查看linux server网络I/0流量的shell脚本
  10. 0-1背包动态规划c语言,动态规划解决0-1背包问题程序看不懂,请大家看看帮忙解决下...