代码拉取完成,页面将自动刷新
sARQ是一个可靠通信协议,适合在无MMU的MCU上使用。通过停等ARQ协议保证通信双发数据传输。用户无需关注协议具体内容, 只需要通过统一接口读写数据即可,协议内部会自动完成数据校验、重发、去重等。
整个协议为纯算法实现,无底层依赖,只需要实现数据输出回调函数。
基于两个端点之间通信,需要多点通信时创建多个协议对象即可。
纯C编写,可移植性强,需要C99及以上编译器。
发送一个数据包后在规定时间内等待对方应答,超时重发。
未使用动态内存,全部使用静态数组及堆栈完成数据缓存。无任何碎片产生,适合小内存MCU使用;保证长时间高可靠运行。
基于对象方式管理,每个通信双方皆为协议对象;支持创建任意数量对象。
sarq_t sarq;
u8 sarq_buf[1024];
sarq_init(&sarq, sarq_buf, sizeof(sarq_buf), 1, 2, 10, output);
err_t err;
const u8 test_str[] = "0123456789ABCDEF";
err = sarq_write(&sarq, test_str, sizeof(test_str));
printf("write ok is 0=%d\n", err);
while (1)
{
sarq_handler(&sarq, GetTickCount());
u8 buf[1024];
u16 len;
len = sarq_read(&sarq, buf, sizeof(buf));
if (len)
printf("get:%d-%s\n", len, buf);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。