#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
Linux 串口读取
于 2021-07-09 16:45:16 首次发布
这是一个使用C语言编写的Linux串口通信程序,它实现了打开串口、配置波特率、数据位、校验位、停止位以及接收数据的功能。程序首先打开指定的串口设备(如/dev/ttyUSB0),然后设置串口参数,包括设置波特率为115200,数据位为8,无校验,一个停止位,并进入无限循环接收串口数据。接收的数据会立即打印到控制台。

最低0.47元/天 解锁文章
1150

被折叠的 条评论
为什么被折叠?



