跳转至

通讯和总线协议

minmea [WTFPL]

https://github.com/kosma/minmea 轻量的GPS NMEA0183协议解析库,纯C实现

FreeModbus

https://github.com/armink/FreeModbus_Slave-Master-RTT-STM32

添加了主机模式的FreeModbus

protocol buffer

nanopb[zlib]

文档说编译出来2-10k code size,实际上如果要用到构造+解析器,那么尺寸就得有8k以上了。

https://github.com/nanopb/nanopb

https://jpa.kapsi.fi/nanopb/docs/reference.html

Protobuf-Embedded-C[Apache]

https://github.com/berezovskyi/protobuf-embedded-c

lwpb[Apache]

https://github.com/acg/lwpb

Cap'n Proto

https://capnproto.org/encoding.html

比protobuf更轻的序列化格式协议,用类似C结构体的方式,在小端字节序的机器上不用编码、解码。

c-capnproto

https://github.com/opensourcerouting/c-capnproto

TPL - a small binary serialization library for C

http://troydhanson.github.io/tpl/

http://troydhanson.github.io/tpl/userguide.html#_overview

设计目标是本地存储,从文件打开时使用mmap而不是整个文件直接加载到内存。

浮点数是直接存的,不具有可移植性,说明对于数据交换方面不是首要目标。

msgpuck

https://github.com/rtsisyk/msgpuck

零成本抽象、零开销

USB

STM8S-USB [?]

https://github.com/ZiB/STM8S-USB

STM8软件USB实现

USB Raw HID [?]

http://www.pjrc.com/teensy/rawhid.html

使用RAW HID与下位单片机通讯(只提供了AVR程序 但可以参考着改成其他)

提供了几个读写数据的简单函数(有Linux MACOSX Win实现)

适用于USB小数据传输场合

V-USB(avrusb) [GPL]

http://www.obdev.at/products/vusb/

AVR软件USB库

HIDAPI [GPLv3 BSD]

http://www.signal11.us/oss/hidapi/

跨平台HID API (HID API for Linux, Mac OS X, and Windows)

libusb

http://www.libusb.org/

usb通用驱动

libusbK [GPL modifiedBSD]

http://libusbk.sourceforge.net/UsbK3/index.html

win下专用的libusb 功能完整

usbmux

https://github.com/libimobiledevice/usbmuxd

与iOS设备通讯,USB中创建socket连接。

webusb

https://github.com/WICG/webusb

网页上与USB设备通讯

tinyusb

https://github.com/hathach/tinyusb

优雅小巧的USB库,适配MCU比较容易。