littlebot
Published on 2025-04-12 / 0 Visits
0

【源码】基于C语言和Tiva微控制器的多平台硬件抽象库

项目简介

本项目是基于C语言和Tiva微控制器开发的多平台硬件抽象库,为x86 Linux和Tiva微控制器提供通用的硬件抽象及实用工具。该库最初服务于omnid机器人项目,具备通用性,未来有望拓展至更广泛的应用场景。

项目的主要特性和功能

  1. 支持x86 Linux和Tiva微控制器两种平台。
  2. 具备UART串行库,支持低延迟的FTDI USB到串行转换器,以及Linux上的RS - 485串行设备。
  3. 支持通过UART进行数据传输的协议和序列化/反序列化功能。
  4. 提供高效的锁无单生产者单消费者队列。
  5. 包含CMake实用工具,如编译时暴露Git信息、可选编译标志、基本CMake选项等。
  6. 拥有灵活的错误处理代码,能保留调试信息并立即终止程序。
  7. 实现了PID控制器。
  8. 提供通用的多圈编码器数学接口。
  9. 具备C代码的静态断言功能。
  10. 提供数据序列化库。
  11. 包含时间处理函数。
  12. 可实现RGB LED控制,在主机PC上转换为打印语句。
  13. 重新分发Catch.hpp单元测试框架供其他项目使用。

安装使用步骤

  1. 复制仓库:使用vcstool工具和提供的repo文件(sshhttp)将本仓库和其他相关仓库复制到ROS工作空间。
  2. 编译工作空间:使用catkin_toolscatkin_make_isolated等隔离构建工具编译工作空间。
  3. 查找包并链接库:在CMakeLists.txt中使用find_package(nuhal),然后添加nuhal::nuhaltarget_link_libraries
  4. 平台自动检测:库会根据工具链、主机和交叉编译状态自动检测平台。
  5. CMake函数:库包含一些有用的CMake函数,具体细节请参阅nuhal_all/nuhal.cmake中的注释。

其他说明

  • 各平台的详细文档可在对应平台的README.md文件中查找。
  • Doxygen文档会在每次构建时生成,存于<build>/doc/index.html
  • 添加新平台时,可参考nuhal_linux/CMakeLists.txtnuhal_tiva/PreLoad.txt

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】