当前位置: 首页 > news >正文

STM32CubeMX+micro_ros_stm32cubemx_utils库

GitHub - micro-ROS/micro_ros_stm32cubemx_utils at humble

 这个就是下载这个代码库以后的文件结构。其中sample_project.ioc就是平时STM32CubeMX的工程文件。类似于visual studio里面的项目文件 。打开以后是这个样子的:

 可以看到跟本文后面的那些配置是几乎一模一样,就是说这个包里面包含了STM32CubeMX工程文件了

Using this package with STM32CubeMX

  1. Clone this repository in your STM32CubeMX project folder. A sample project can be generated with the provided sample_project.ioc.

  2. Make sure that your STM32CubeMX project is using a Makefile toolchain (toolchain指交叉编译器,我觉得就是跨平台编译的东西例如cmake,这里选择使用makefile交叉编译器系统,这个代码库下载后也可以看到有mkefile文件,应该用于交叉编译的,有意思的是:CMakelists.txt最后也是生成了makefile文件)under Project Manager -> Project

  3. Make sure that if you are using FreeRTOS, the micro-ROS task has more than 10 kB of stack

  4. Configure the transport interface on the STM32CubeMX project, check the Transport configuration section for instructions on the custom transports provided.在STM32CubeMX内设置串口

  5. Modify the generated Makefile to include the following code before the build the application section:修改makefile文件,在build the application之前添加后面这个代码

    #######################################
    # micro-ROS addons
    #######################################
    LDFLAGS += micro_ros_stm32cubemx_utils/microros_static_library/libmicroros/libmicroros.a
    C_INCLUDES += -Imicro_ros_stm32cubemx_utils/microros_static_library/libmicroros/microros_include# Add micro-ROS utils
    C_SOURCES += micro_ros_stm32cubemx_utils/extra_sources/custom_memory_manager.c
    C_SOURCES += micro_ros_stm32cubemx_utils/extra_sources/microros_allocators.c
    C_SOURCES += micro_ros_stm32cubemx_utils/extra_sources/microros_time.c# Set here the custom transport implementation
    C_SOURCES += micro_ros_stm32cubemx_utils/extra_sources/microros_transports/dma_transport.c
    #注意看这里添加的是DMA传输方式文件,所以前面应该配置的是DMA传输方式,如果使用的是中断方式就不知道添加哪个文件了也许大概是包含IT_transport.c这样的一个文件吧print_cflags:@echo $(CFLAGS)
  6. Execute the static library generation tool. 编译Compiler flags will retrieved automatically from your Makefile and user will be prompted to check if they are correct.

    docker pull microros/micro_ros_static_library_builder:humble(这里遇到permission denied,所以需要先切换到超级用户在控制台输入su,然后再执行这个命令就可以了)docker run -it --rm -v $(pwd):/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library microros/micro_ros_static_library_builder:humble
  7. Modify your main.c to use micro-ROS.(在开发文件cpp文件中根据需要使用micro-ros内容) An example application can be found in sample_main.c.

  8. Continue your usual workflow building your project and flashing the binary:

    make -j$(nproc)

Transport configuration(STM32与micro_ros支持的通讯方式)

Available transport for this platform are:

U(S)ART with DMA(DMA方式的串口通讯)

Steps to configure:

  • Enable U(S)ART in your STM32CubeMX
  • For the selected USART, enable DMA for Tx and Rx under DMA Settings
  • Set the DMA priotity to Very High for Tx and Rx
  • Set the DMA mode to Circular for Rx: Detail
  • For the selected, enable global interrupt under NVIC Settings: Detail

U(S)ART with Interrupts(中断方式串口通讯)

Steps to configure:

  • Enable U(S)ART in your STM32CubeMX
  • For the selected USART, enable global interrupt under NVIC Settings: Detail

USB CDC

Steps to configure:

  • Enable the USB in your STM32CubeMX Connectivity tab.

  • Select the Communication Device Class (Virtual Port Com) mode on the Middleware -> USB_DEVICE configuration.

    Note: The micro-ROS transport will override the autogenerated USB_DEVICE/App/usbd_cdc_if.c methods.

相关文章:

STM32CubeMX+micro_ros_stm32cubemx_utils库

GitHub - micro-ROS/micro_ros_stm32cubemx_utils at humble 这个就是下载这个代码库以后的文件结构。其中sample_project.ioc就是平时STM32CubeMX的工程文件。类似于visual studio里面的项目文件 。打开以后是这个样子的: 可以看到跟本文后面的那些配置是几乎一模一…...

C语言有哪些预处理操作?

C语言的预处理是在编译之前对源代码进行处理的阶段,它主要由预处理器完成。预处理器是一个独立的程序,它负责对源代码进行一些文本替换和处理,生成经过预处理的代码。以下是C语言预处理的一些重要特性: 1,头文件包含 #…...

数据结构算法-希尔排序算法

引言 在一个普通的下午,小明和小森决定一起玩“谁是老板”的扑克牌游戏。这次他们玩的可不仅仅是娱乐,更是要用扑克牌来决定谁是真正的“大老板”。 然而,小明的牌就像刚从乱麻中取出来的那样,毫无头绪。小森的牌也像是被小丑掷…...

php使用vue.js实现省市区三级联动

参考gpt 有问题问gpt 实现效果 现省市区三级联动的方法可以使用PHP结合AJAX异步请求来实现。下面是一个简单的示例代码&#xff1a; HTML部分&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>省市区三级联动…...

软件测试:测试用例八大要素模板

一、通用测试用例八要素 1、用例编号&#xff1b; 2、测试项目&#xff1b; 3、测试标题&#xff1b; 4、重要级别&#xff1b; 5、预置条件&#xff1b; 6、测试输入&#xff1b; 7、操作步骤&#xff1b; 8、预期输出 二、具体分析通用测试用例八要素 1、用例编号 一般是数字…...

C语言进阶之路之顶峰相见篇

目录 一、学习目标 二、宏定义 预处理 宏的概念 带参宏 无值宏定义 三、条件编译 条件编译 条件编译的使用场景 四、头文件 头文件的作用 头文件的内容 头文件的基础语句&#xff1a; GCC编译器的4个编译步骤&#xff1a; 总结 一、学习目标 掌握宏定义含义和用…...

第76讲:MySQL数据库中常用的命令行工具的基本使用

文章目录 1.mysql客户端命令工具2.mysqladmin管理数据库的客户端工具3.mysqlbinlog查看数据库中的二进制日志4.mysqlshow统计数据库中的信息5.mysqldump数据库备份工具6.mysqllimport还原备份的数据7.source命令还原SQL类型的备份文件 MySQL数据库提供了很多的命令行工具&#…...

初级数据结构(二)——链表

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;一&#xff09;——顺序表 | NULL 下一篇-> 1、链表特征 与顺序表数据连续存放不同&#xff0c;链表中每个数据是分开存放的&#xff0c;而且存放的位置尤其零散&#…...

Kubernetes架构及核心部件

文章目录 1、Kubernetes集群概述1.1、概述1.2、通过声明式API即可 2、Kubernetes 集群架构2.1、Master 组件2.1.1、API Server2.1.2、集群状态存储2.1.3、控制器管理器2.1.4、调度器 2.2、Worker Node 组件2.2.1、kubelet2.2.2、容器运行时环境2.2.3、kube-proxy 2.3、图解架构…...

RAW和YUV的区别

RAW是指未经过任何压缩或处理的原始图像数据。在摄像头中&#xff0c;原始图像数据可以是来自图像传感器的未经处理的像素值。这些原始数据通常以一种Bayer模式的形式存在&#xff0c;其中每个像素仅包含一种颜色信息&#xff08;红色、绿色或蓝色&#xff09;&#xff0c;需要…...

Linux常见问题-获取日志方法总结(Ubuntu/Debian)

1 日志基本路径和基础查看方法 在 Ubuntu 或 Debian 11 系统中&#xff0c;可以通过不同的日志文件来获取系统日志和内核日志。日志常见路径如下&#xff1a; /var/log/syslog&#xff1a;包含系统的整体日志&#xff0c;包括各种系统事件和服务日志。/var/log/auth.log&…...

【机器视觉技术栈】03 - 镜头

镜头 定焦镜头变焦镜头远心镜头 FA镜头与远心镜头的区别&#xff1f; 焦距越小畸变程度越大&#xff0c;精度要求不高的场景可以使用焦距大的FA镜头做尺寸测量&#xff0c;但焦距越大带来的问题就是整个机械设备越大。精度高的场景使用远心镜头进行尺寸测量。 光学基础知识…...

判断一个Series序列的值是否为单调递减Series.is_monotonic_decreasing

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断一个Series序列中 各值是否单调递减 s.is_monotonic_decreasing [太阳]选择题 以下代码的输出结果中正确的是? import pandas as pd s1 pd.Series([3,2,1]) s2 pd.Series([3,2,4]) pri…...

CSPNet: A New Backbone that can Enhance Learning Capability of CNN(2019)

文章目录 -Abstract1 Introduction2 Related workformer work 3 Method3.1 Cross Stage Partial Network3.2 Exact Fusion Model 4 Experiments5 Conclusion 原文链接 源代码 - 梯度信息重用&#xff08;有别于冗余的梯度信息&#xff09;可以减少计算量和内存占用提高效率&am…...

本科毕业论文查重的依据

大家好&#xff0c;今天来聊聊本科毕业论文查重的依据&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 本科毕业论文查重依据&#xff1a;维护学术诚信的基石 摘要&#xff1a; 本科毕业论文是衡量学生学…...

如何利用Axure制作移动端产品原型

Axure是一款专业的快速原型设计工具&#xff0c;作为专业的原型设计工具&#xff0c;Axure 能够快速、高效地创建原型&#xff0c;同时支持多人协作设计和版本控制管理。它已经得到了许多大公司的采用&#xff0c;如IBM、微软、思科、eBay等&#xff0c;这些公司都利用Axure 进…...

Java中时间之间的转换

Java中常见的时间类有&#xff1a;Date、Calendar、SimpleDateFormat等。下面对不同时间类之间的转换进行介绍。 1、Date和Calendar之间的转换 Date和Calendar都可以表示时间&#xff0c;但是它们的使用方式不同。Date是一个表示特定时间点的类&#xff0c;而Calendar则是一个…...

【win32_005】调试信息打印到控制台----2种简单方法

方法1&#xff1a;使用win32 api函数 PCTSTR str1 TEXT("123456789");AllocConsole();HANDLE HConsole GetStdHandle(STD_OUTPUT_HANDLE);WriteConsole(HConsole, str1, 9, NULL, NULL);https://learn.microsoft.com/zh-cn/windows/console/writeconsole 方…...

PPT添加备注

0 Preface/Foreward 1 添加备注方法 添加备注方法&#xff1a;在page的最下端&#xff0c;有一个空白文本框&#xff0c;该文本框用来添加备注。...

Ubuntu20.04使用cephadm部署ceph集群

文章目录 Requirements环境安装Cephadm部署Ceph单机集群引导&#xff08;bootstrap&#xff09;建立新集群 管理OSD列出可用的OSD设备部署OSD删除OSD 管理主机列出主机信息添加主机到集群从集群中删除主机 部署Ceph集群 Cephadm通过在单个主机上创建一个Ceph单机集群&#xff0…...

TensorFlow开发中用到的一些第三方库

本节介绍下后面开发要用到的辅助库&#xff0c;并做一些简单的代码实例和效果演示&#xff0c;当然我们都是为了最终目标TensorFlow开发做准备的&#xff0c;用到的也是这些库的简单的api&#xff0c;这里做简单的介绍为后面TensorFlow开发做准备&#xff0c;对于这些库的深入研…...

SDMatte模型参数调优指南:平衡抠图速度与精度的艺术

SDMatte模型参数调优指南&#xff1a;平衡抠图速度与精度的艺术 1. 前言&#xff1a;为什么需要参数调优 当你第一次使用SDMatte进行图像抠图时&#xff0c;可能会发现一个有趣的现象&#xff1a;同样的模型&#xff0c;在不同设置下表现截然不同。有时候处理速度飞快但边缘粗…...

扫雷-HTML

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>扫雷游戏</title><style>* {margin:…...

LongCat-Image-Editn V2效果展示:看AI如何精准将图中的猫变成狗

LongCat-Image-Editn V2效果展示&#xff1a;看AI如何精准将图中的猫变成狗 1. 效果惊艳开场&#xff1a;当AI成为你的修图助手 想象一下这样的场景&#xff1a;你拍了一张完美的照片&#xff0c;构图、光线、背景都无可挑剔&#xff0c;唯一的遗憾是照片里的主角——你的猫咪…...

8大核心功能解决网盘下载难题:Online-disk-direct-link-download-assistant完全指南

8大核心功能解决网盘下载难题&#xff1a;Online-disk-direct-link-download-assistant完全指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿…...

MAF快速入门(21)RC5引入的Script运行能力

大家好&#xff0c;我是Edison。最近我一直在跟着圣杰的《.NETAI智能体开发进阶》课程学习MAF开发多智能体工作流&#xff0c;我强烈推荐你也上车跟我一起出发&#xff01;上一篇&#xff0c;我们了解下.NET 10新推出的File-Based App模式&#xff0c;它和MAF一起可以形成一个强…...

Xiaomi Home集成:小米智能家居设备接入Home Assistant的完整解决方案

Xiaomi Home集成&#xff1a;小米智能家居设备接入Home Assistant的完整解决方案 【免费下载链接】ha_xiaomi_home Xiaomi Home Integration for Home Assistant 项目地址: https://gitcode.com/GitHub_Trending/ha/ha_xiaomi_home 小米智能家居集成项目&#xff08;Xia…...

Leather Dress Collection 网络协议分析与API接口设计规范

Leather Dress Collection 网络协议分析与API接口设计规范 最近在内部项目里&#xff0c;我们接入了好几个类似Leather Dress Collection这样的AI模型服务。一开始大家调用得挺开心&#xff0c;但用着用着问题就来了&#xff1a;有的服务突然响应变慢&#xff0c;有的接口偶尔…...

2026最权威的十大降重复率神器实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于当下竞争极为激烈的商业环境之中&#xff0c;企业降本增效的需求变得越发迫切&#xff0c…...

通义千问3-Reranker-0.6B开箱即用:国产信创服务器上的语义裁判快速搭建

通义千问3-Reranker-0.6B开箱即用&#xff1a;国产信创服务器上的语义裁判快速搭建 1. 为什么需要专业的语义重排序模型&#xff1f; 在信息爆炸的时代&#xff0c;我们每天都要面对海量的文本数据。无论是企业知识库、电商搜索还是智能客服&#xff0c;传统的关键词匹配就像…...