c语言 串口相关几个函数

参考的文章:
read和write
open

打开串口open函数,用于linux

举例:usart_file = open("/dev/ttyUSB0", O_RDWR|O_NOCTTY);
所需头文件
#include<fcntl.h>
函数原型
int open(const char *path, int oflags,mode_t mode);
函数说明:open建立了一条到文件或设备的访问路径。
参数说明:
path表示:路径名或者文件名,可以是硬件名("/dev/ttyUSB0")
oflags表示:打开文件所采取的动作。
	表明你想对文件怎么操作:
    O_RDONLY(只读),
    O_WRONLY(只写),
    O_RDWR(可读可写)
	还有些要用的以下常量是选用的:
	O_APPEND      	每次写操作都写入文件的末尾
	O_CREAT        	如果指定文件不存在,则创建这个文件
	O_EXCL         	如果要创建的文件已存在,则返回 -1,并且修改errno的值
	O_TRUNC        	如果文件存在,并且以只写/读写方式打开,则清空文件全部内容
	O_NOCTTY       	如果路径名指向终端设备,不要把这个设备用作控制终端。
	O_NONBLOCK     	如果路径名指向 FIFO/块文件/字符文件,则把文件的打开和后继 I/O设置为非阻塞模式(nonblocking mode)
mode表示:设置文件访问权限的初始值,可以忽略。(与用户掩码umask变量有关,实际的访问权限有mode &~umask确定)
	可选:S_IRUSR,S_IWUSER,S_IXUSR,S_IRGRP,S_IWGRP,S_IXGRP,S_IROTH,S_IWOTH,S_IXOTH.其中R:读,W:写,X:执行,USR:文件所属的用户,GRP:文件所属的组,OTH:其他用户。
注:第三个参数是在第二个参数中有O_CREAT时才用作用。若没有,则第三个参数可以忽略。
返回值:如果操作成功,它将返回一个文件描述符,如果失败,返回-1

read和write函数

所需头文件
#include<unistd.h>
read函数,从一个地方读一定字节的内容到一个数组里
举例:
ssize_t read(int fd,void*buf,size_t count)
参数说明:
fd: 是文件描述符, 从command line获取数据时,为0
buf: 为读出数据的缓冲区;
count: 为每次读取的字节数(是请求读取的字节数,读上来的数据保
存在缓冲区buf中,同时文件的当前读写位置向后移)
返回值:int res = read(fd,pc_from_mcu_usart_buf,12);
成功:返回读出的字节数
失败:返回-1,并设置errno,如果在调用read
之前到达文件末尾,则这次read返回0

write函数,把一个数组里固定字节的内容写到一个地方
size_t write(int fd,const void*buf,size_t count);
举例:write(fd,pc_to_mcu_usart_buf,12);
参数说明:
fd:是文件描述符(输出到command line,就是1)
buf:通常是一个字符串,需要写入的字符串
count:是每次写入的字节数
返回值:
成功:返回写入的字节数
失败:返回-1并设置errno
ps: 写常规文件时,write的返回值通常等于请求写的字节
数count, 而向终端设备或者网络写时则不一定
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值