Skip to content

Latest commit

 

History

History
110 lines (75 loc) · 3.41 KB

README.md

File metadata and controls

110 lines (75 loc) · 3.41 KB

RM2024-SerialDriver-STM32 下位机开源

文件树

├── asset # 文档素材文件
│   ├── Circular_Buffer_Animation.gif
│   ├── config_1.png
│   ├── config_2.png
│   ├── config_3.png
│   ├── experiment_host.png
│   ├── experiment_MCU.png
│   ├── experiment_systemview.png
│   ├── extra_description_2.png
│   ├── extra_description.png
│   ├── RXDMA_Config.png
│   ├── RX_unpack_diagram.drawio
│   ├── RX_unpack_diagram.drawio.png
│   ├── sch_ttl_ch343p.png
│   ├── UART_diagram.excalidraw
│   └── UART_diagram.png
├── Doc	# 开源文档	
│   ├── serial_driver_MCU_doc.md
│   └── serial_driver_MCU_doc.pdf
├── NewRosComm	# 开源文件本体
│   ├── NewRosCommConfig.hpp
│   ├── NewRosComm.cpp
│   ├── NewRosComm.hpp
│   ├── NewRosComm.mk
│   ├── NewRosCommProtocol.hpp
│   └── Utils
│       ├── CRC.cpp
│       ├── CRC.hpp
│       └── MISOCircularBuffer.hpp
└── README.md
  • MISOCircularBuffer.hpp:提供了MISO环形缓冲的实现。
  • NewRosComm.*:串口模块的主体部分,为用户调用提供了接口,负责整个模块的流程控制。
  • NewRosCommProtocol.hpp:串口模块的协议层, 用户可以在这个文件内部定义新的数据帧格式。
  • CRC.* 提供了数据包CRC校验算法的实现与支持。
  • NewRosCommConfig.hpp 项目具体参数配置文件。

使用教程

本模块的代码开发基于队伍的 arm-none-eabi-gcc工具链,采用 STM32CUBEMX 生成项目配置文件。如果要直接使用本模块,用户需要自己下载相关环境。

文件的引用路径已经包含在NewRosComm.mk,使用时需要在主Makefile文件中手动添加模块的路径,定义该模块的根目录NewRosComm_PATH,并手动将引用文件 NewRosComm_INC与源文件NewRosComm_PATH_SRC 路径添加进编译环境里面

# Your Makefile
# Define Root directory of the module
NewRosComm_PATH = $(YOUR_DIR)/NewRosComm

# Include makefile
include $(NewRosComm_PATH)/NewRosComm.mk

# ...
# Append source files
CPP_SRC += $(NewRosComm_SRC) \
# ...

# Append include path
CPP_INCLUDES += $(NewRosComm_INC) \
# NewRosComm.mk

# Sources
NewRosComm_SRC = \
$(NewRosComm_PATH)/NewRosComm.cpp \
$(NewRosComm_PATH)/Utils/CRC.cpp


# Includes
NewRosComm_INC =  \
-I$(NewRosComm_PATH) \
-I$(NewRosComm_PATH)/Utils

此外,该模块需要搭配相应的上位机模块进行通信。请参照我们RM2024的上位机通讯开源:https://github.com/hkustenterprize/RM2024-RosComm

-注意事项-

  • 本模块依赖于 FreeRTOS 提供的内核支持以及C标准库。如果直接使用本模块,请手动将FreeRTOS 与C标准库添加至编译环境中,本模块并不包含该环境。

  • 本模块仅在ENTERPRIZE战队的嵌入式开发环境中成功运行,无法保证在其他嵌入式环境下的兼容性,开源仅供学习参考而不直接提供现成部署方案。

API 文档

具体请见模块的代码注释:

https://github.com/hkustenterprize/RM2024-SerialDriver-STM32/blob/main/NewRosComm/NewRosComm.hpp

开源文档

详情请见: https://github.com/hkustenterprize/RM2024-SerialDriver-STM32/blob/main/Doc/serial_driver_MCU_doc.md