modbus_tcp和modbus_rtu对比&移植AT-socket,modbus_tcp&杂记

modbus_rtu通信时没有连接过程,主机和从机各自初始化自身串口就行了,而rtu需要确定从机ID。

注:在TCP连接中,不同的网卡有不同的IP,port对应具体的程序。

cpp 复制代码
/* 先读取数据 */
	for (i = 0; i < len; i++)
	{
		if (pdPASS != xQueueReceive(recv_queue, &buf[i], 0))
			break;
	}

	/* 如果没有数据才等待 
	之所以这样做是因为如果队列有100字节数据,第一次只读10字节的话,下次再读就只能等待重新得到信号量了,因此会造成接收延迟
	*/
	if (i == 0)//说明队列里为空,一个都没读到,这时才阻塞等待
	{
		xSemaphoreTake(ptDev->sockets[socket].at_packet_sem, portMAX_DELAY);
	}

	/* 读取数据 */
	for (; i < len; i++)
	{
		if (pdPASS != xQueueReceive(recv_queue, &buf[i], 0))
			break;
	}
相关推荐
爱潜水的小L17 小时前
自学嵌入式day34,ipc进程间通信
linux·运维·服务器
zhuzewennamoamtf18 小时前
Linux I2C设备驱动
linux·运维·服务器
2301_7737303118 小时前
系统编程—IPC进程间通信
网络·网络协议
梅尔文.古18 小时前
RaspberryPi-如何启用看门狗
linux·运维·服务器
木子欢儿18 小时前
Ubuntu 24 安装 fcitx5 + rime + 雾凇配置
linux·运维·服务器·ubuntu
Alice18 小时前
linux scripts
java·linux·服务器
代码游侠19 小时前
学习笔记——IPC(进程间通信)
linux·运维·网络·笔记·学习·算法
Henry Zhu12319 小时前
VPP中ACL源码详解第二篇:ACL数据平面处理
运维·服务器·网络·计算机网络
上河雨滴19 小时前
win11 环境下,有线网络识别问题bug
网络