C语言怎么读取串口的数据为,如何通过串口来读写数据,请教达人
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
如何通过终端读取并显示串口连接的某硬件的数据
通过一程序来代替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语言怎么读取串口的数据为,如何通过串口来读写数据,请教达人相关推荐
- 用c语言做RFID读卡程序,2.STM32读卡号读写数据代码示例3.0(C语言)
文件名大小更新时间 2.STM32读卡号读写数据代码示例3.0(C语言)\HFRFID.uvgui.WEIZAI736912016-07-15 2.STM32读卡号读写数据代码示例3.0(C语言)\H ...
- android ble蓝牙接收不到数据_Android蓝牙4.0 Ble读写数据详解 -2
Android蓝牙4.0 Ble读写数据详解 -2 上一篇说了如何扫描与链接蓝牙 这篇文章讲讲与蓝牙的数据传输,与一些踩到的坑. 先介绍一款调试工具,专门调试Ble蓝牙的app.名字叫:nRF-Con ...
- java按列读取数据再存储_Java指定行读写数据
/** * 根据指定行写数据 * * @param lineNumber 要存的行数 * @param data 要存储的数据 */ public static void setAppointedLi ...
- 大数据学习总结+JAVA学习总结+大数据面试+java面试+大数据java异常总结
文章目录 一.java模块面试问题 1.动态代理 2.浏览器禁用Cookie后的Session处理 3.主从复制的流程[重要] 5.redis的数据类型[重要] 6.Junit测试的注解 7.缓存问题 ...
- c语言从串口获取数据,如何通过串口来读写数据,请教达人
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如何通过终端读取并显示串口连接的某硬件的数据 通过一程序来代替hexdump 从而进行输入输出 用C语言实现 下面一程序为i/o输入输出,请教达人,怎样 ...
- c语言如何获取串口列表,如何通过串口来读写数据,请教达人
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如何通过终端读取并显示串口连接的某硬件的数据 通过一程序来代替hexdump 从而进行输入输出 用C语言实现 下面一程序为i/o输入输出,请教达人,怎样 ...
- VS语音信号处理(2) C语言分段读取WAV语音文件语音数据
VS语音信号处理(2) C语言分段读取WAV语音文件语音数据 前言 一. 工程实现 二. 结果 三. 小结 前言 语音识别相关算法一般在MATLAB上进行仿真验证与实验,在工程上一般还是在VS中进行实 ...
- R语言中读取excel数据的常用方式有哪些?
R语言中读取excel数据的常用方式有哪些? 目录 R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R ...
- r语言在linux下取数据,菜鸟第一步,跪在数据处:R语言读取数据
1. 温故知坑 实践是学习知识的最好途径.之前我讲的内容都非常非常基础,包括: (1)什么是R语言?R语言和Rstudio软件的安装,Rstudio的界面介绍: (2)R语言的基本逻辑,基本数据类型: ...
最新文章
- 马云携阿里17位创始人及合伙人捐赠浙大一院5.6亿,杭州渐成中国硅谷
- Java常用垃圾收集器
- ccf json解析 java,【求助】e4a json解析 求助大佬帮忙老看下怎么取?
- java访问其它服务器,一个Java Web应用程序是否可以在tomcat服务器的同一本地主机中调用另一个Java Web应用程序...
- 巴菲特2019年慈善午餐开拍 目前出价已超过11万美元
- 在linux中emacs安装package.el
- 55个javascript经典用法
- 常用正则表达式(regular expression)
- (一)LINGO入门---软件安装
- ectouch后台添加菜单
- 小米原装系统镜像列表
- 深圳禾正医院自控系统案例|能迪科技canlead中央空调净化系统
- 简单工厂(Java)
- 1K直接金属涂层(DTM)-市场现状及未来发展趋势
- egret 微信小游戏 分享游戏截图
- MySQL安全分析:缓解MySQL零日漏洞
- MFC 隐藏/显示鼠标图标
- ORA-01653: unable to extend table原因及解决
- 机器学习中【回归算法】详解
- 个人Javascript学习
热门文章
- Javascript-稳妥构造函数模式
- Linux 指令篇:文本统计--wc(word count)
- Java关键字系列(public,protected,private)
- python 获取 文件修改时间 距离 当前时间 天数 秒数
- socket PF_INET AF_INET 区别
- SAP 企业管理软件与解决方案 产品简介
- DPDK(Data Plane Development Kit)快速处理数据包 开发平台及接口 简介
- rtp 多媒体流同步控制 实时传输协议 简介
- 项目代码结构 Dao,Service,Controller,Util,Model 含义
- linux c dns查询IP地址