​​串口转socket通信

本文详细介绍了如何将串口通信转换为socket通信的思路,包括串口结构体的定义,关注了串口参数设置及内存存放情况,强调了在处理字符串时正确使用memcpy()或strcpy()函数的重要性,并指出在栈中定义变量的限制,建议使用堆内存来确保数据的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)串口转socket的思路

在这里插入图片描述

(2)串口结构体的定义

串口有波特率、校验位、数据位、停止位等等的设置,把这些设置打包在一起。

typedef struct __COM_PORT			// 定义一个串口结构体
{
    unsigned char databit, parity, stopbit, flowctrl, is_connted;
    char dev_name[DEVNAME_LEN];
    unsigned char  used;     		/* This comport used or not now */
    int fd;
    int frag_size;
    long baudrate;
} COM_PORT;							// COM_PORT等价于__COM_PORT

(3)串口函数各内存存放情况

在这里插入图片描述

(4)串口函数的定义

以下是错误的定义方法:

void comport_init(const char *dev_name, int baudrate, const char *settings)
{
	COM_PORT comport;
	comport.dev_name = dev_name;		// 错误
}

我们想要传 “/dev/ttyS1” 字符串,但实际上我们只是传的这个字符串的首地址(如上图所示)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值