项目简介
本项目是基于C语言和Tiva微控制器开发的多平台硬件抽象库,为x86 Linux和Tiva微控制器提供通用的硬件抽象及实用工具。该库最初服务于omnid
机器人项目,具备通用性,未来有望拓展至更广泛的应用场景。
项目的主要特性和功能
- 支持x86 Linux和Tiva微控制器两种平台。
- 具备UART串行库,支持低延迟的FTDI USB到串行转换器,以及Linux上的RS - 485串行设备。
- 支持通过UART进行数据传输的协议和序列化/反序列化功能。
- 提供高效的锁无单生产者单消费者队列。
- 包含CMake实用工具,如编译时暴露Git信息、可选编译标志、基本CMake选项等。
- 拥有灵活的错误处理代码,能保留调试信息并立即终止程序。
- 实现了PID控制器。
- 提供通用的多圈编码器数学接口。
- 具备C代码的静态断言功能。
- 提供数据序列化库。
- 包含时间处理函数。
- 可实现RGB LED控制,在主机PC上转换为打印语句。
- 重新分发Catch.hpp单元测试框架供其他项目使用。
安装使用步骤
- 复制仓库:使用
vcstool
工具和提供的repo文件(ssh或http)将本仓库和其他相关仓库复制到ROS工作空间。 - 编译工作空间:使用
catkin_tools
或catkin_make_isolated
等隔离构建工具编译工作空间。 - 查找包并链接库:在CMakeLists.txt中使用
find_package(nuhal)
,然后添加nuhal::nuhal
到target_link_libraries
。 - 平台自动检测:库会根据工具链、主机和交叉编译状态自动检测平台。
- CMake函数:库包含一些有用的CMake函数,具体细节请参阅
nuhal_all/nuhal.cmake
中的注释。
其他说明
- 各平台的详细文档可在对应平台的
README.md
文件中查找。 - Doxygen文档会在每次构建时生成,存于
<build>/doc/index.html
。 - 添加新平台时,可参考
nuhal_linux/CMakeLists.txt
和nuhal_tiva/PreLoad.txt
。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】