通讯和总线协议
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]¶
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¶
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比较容易。