Linux 串口读取

这是一个使用C语言编写的Linux串口通信程序,它实现了打开串口、配置波特率、数据位、校验位、停止位以及接收数据的功能。程序首先打开指定的串口设备(如/dev/ttyUSB0),然后设置串口参数,包括设置波特率为115200,数据位为8,无校验,一个停止位,并进入无限循环接收串口数据。接收的数据会立即打印到控制台。
#include <stdlib.h>
#include  <fcntl.h>
#include  "stdio.h"
#include  "termios.h"
#include  "unistd.h"
#include  "limits.h"
#include  <stdint.h>
#include  "time.h"
 //===================
#include <sys/select.h>
#include <sys/time.h>
 //===================


#define   UART_DEV   "/dev/ttyUSB0" //根据电脑插入的串口号定义


void main()
{
    int fd =0;
    int RxLen=0;
    uint8_t RxBuff[1024]={0};

    //==========串口打开============//
    fd = open(UART_DEV ,O_RDWR|O_NOCTTY);
    if(fd<0){
      printf("COM (%s) Open Fail ! \n",UART_DEV); //必须要权限.
      return;
    }
    
  
    printf("COM (%s) Open Success ! Watting recv...\n\n",UART_DEV);
    //==========配置串口============//
    struct  termios opt;          //配置串口的属性定义在结构体struct termios中
    tcgetattr(fd, & opt);         //获取终端控制属性

    cfsetispeed(& opt, B115200);  //指定输入波特率(若不设置系统默认9600bps)
    cfsetospeed(& opt, B115200);  //指定输出波特率(若不设置系统默认9600bps)

    /* c_lflag 本地模式 */
    opt.c_cflag &= ~ INPCK;           //不启用输入奇偶检测
    opt.c_cflag |= (CLOCAL |  CREAD); //CLOCAL忽略 modem 控制线,CREAD打开接受者

    /* c_lflag 本地模式 */
    opt.c_lflag &= ~(ICANON | ECHO | ECHOE |  ISIG); //ICANON启用标准模式;ECHO回显输入字符;ECHOE如果同时设置了 ICANON,字符 ERASE 擦除前一个输入字符,WERASE 擦除前一个词;ISIG当接受到字符 INTR, QUIT, SUSP, 或 DSUSP 时,产生相应的信号

    /* c_oflag 输出模式 */
    opt.c_ofla
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值