VirtualBox虚拟机串口调试方法

1.windows下调试virtualbox的虚拟机串口

2.Cannot open /dev/ttyS0: Permission denied解决
出现了Cannot open /dev/ttyS0: Permission denied提示字样
解决方法如下:
1.由于tty属于“dialout”组别,比如用户名是admin123,
先命令查看下用户隶属的组别
groups admin123
2.如果没有隶属“dialout”,那么把用户加入进去
sudo gpasswd --add admin123 dialout
3.logout 再登录系统激活功能

3.linux在shell下的串口的一些操作

echo aaa > /dev/ttyS0向com1写数据
cat /dev/ttyS0向com1读数据
cat /proc/tty/drivers/serial查看串口信息
stty -F设置串口参数

stty linux 命令在线中文手册
Linux深入探索01-stty与键盘信号

Linux C 配置串口

#include <termios.h>
#include <unistd.h>

// 最核心的配置结构体
typedef unsigned int tcflag_t;
struct termios {
    tcflag_t    c_cflag;                    /* 控制标志 */
    tcflag_t    c_iflag;                     /* 输入标志 */
    tcflag_t    c_oflag;                    /* 输出标志 */
    tcflag_t    c_lflag;                     /* 本地标志 */
    tcflag_t    c_cc[NCCS];           /* 控制字符 */
};

fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY);
struct termios opt;
tcgetattr(fd, &opt);  // 获取上述配置结构体

// 设置波特率相关接口
speed_t cfgetispeed(const struct termios *termios_p);
speed_t cfgetospeed(const struct termios *termios_p);

int cfsetispeed(struct termios *termios_p, speed_t speed);
int cfsetospeed(struct termios *termios_p, speed_t speed);
int cfsetspeed(struct termios *termios_p, speed_t speed);

// 设置奇偶校验位
opt.c_cflag &= ~PARENB;
// 设置数据位
opt.c_cflag &= ~CSIZE;  // 先用 CSIZE 来做屏蔽字段
opt.c_cflag |= CS8;
// 设置停止位
opt.c_cflag &= ~CSTOPB;
// 设置硬件控制流
opt.c_cflag |= CRTSCTS;
// 抛弃存储在 fd 里的未接收的数据
tcflush(fd, TCIFLUSH);
// 将配置信息写入文件描述符 fd
tcsetattr(fd, TCSANOW, &opt);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值