【PX4_Autopolite飞控源码】中飞控板初始化过程中的引脚IO控制(拉低/拉高)

server/2024/12/26 18:24:29/

先选择自己飞控板支持的硬件平台

打开对应的路径我的是Desktop/px4/PX4-Autopilot/boards/zhty/nora

找到board_config.h文件,打开nora后再往下去找Desktop/px4/PX4-Autopilot/boards/zhty/nora/src/borad_config.h

打开后可以看到有很多GPIO引脚的定义,例如:

#define GPIO_CAN2_SILENT_S1  /* PH3  */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTH|GPIO_PIN3)

可以看到这个定义中,是把PH13引脚的输出拉高

然后在初始化列表中添加该定义,即为init.c文件会按照列表执行该初始化操作。

#define PX4_GPIO_INIT_LIST { \PX4_ADC_GPIO,                     \GPIO_HW_REV_DRIVE,                \GPIO_HW_VER_DRIVE,                \GPIO_CAN1_TX,                     \GPIO_CAN1_RX,                     \GPIO_CAN2_TX,                     \GPIO_CAN2_RX,                     \GPIO_CAN1_SILENT_S0,              \GPIO_CAN2_SILENT_S1,              \GPIO_HEATER_OUTPUT,               \GPIO_nPOWER_IN_CAN,               \GPIO_nPOWER_IN_ADC,               \GPIO_nPOWER_IN_C,                 \GPIO_nVDD_5V_PERIPH_EN,           \GPIO_nVDD_5V_PERIPH_OC,           \GPIO_VDD_5V_HIPOWER_EN,           \GPIO_VDD_5V_HIPOWER_OC,           \GPIO_VDD_5V_RC_EN,                \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D0), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D1), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D2), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D3), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_CMD),\GPIO_VDD_3V3_SD_CARD_EN,          \GPIO_TONE_ALARM_IDLE,             \GPIO_OTGFS_VBUS,                  \PX4_GPIO_PIN_OFF(GPIO_HS_USB_EN), \GPIO_RSSI_IN,                     \FMU_LED_AMBER,                    \GPIO_BTN_SAFETY,                  \}

例子:如果我想控制一个引脚IO输出(例如PD1)

#define TEST1  /* PD1拉高  */ (GPIO_OUTPUT|GPIO_PUSHPULL|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN1)
#define TEST2  /* PD1拉低  */ (GPIO_OUTPUT|GPIO_PUSHDOWN|GPIO_SPEED_2MHz|GPIO_OUTPUT_CLEAR|GPIO_PORTD|GPIO_PIN1)

再将这两个添加到初始化列表中

#define PX4_GPIO_INIT_LIST { \PX4_ADC_GPIO,                     \GPIO_HW_REV_DRIVE,                \GPIO_HW_VER_DRIVE,                \GPIO_CAN1_TX,                     \GPIO_CAN1_RX,                     \GPIO_CAN2_TX,                     \GPIO_CAN2_RX,                     \GPIO_CAN1_SILENT_S0,              \GPIO_CAN2_SILENT_S1,              \GPIO_HEATER_OUTPUT,               \GPIO_nPOWER_IN_CAN,               \GPIO_nPOWER_IN_ADC,               \GPIO_nPOWER_IN_C,                 \GPIO_nVDD_5V_PERIPH_EN,           \GPIO_nVDD_5V_PERIPH_OC,           \GPIO_VDD_5V_HIPOWER_EN,           \GPIO_VDD_5V_HIPOWER_OC,           \GPIO_VDD_5V_RC_EN,                \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D0), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D1), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D2), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_D3), \PX4_GPIO_PIN_OFF(GPIO_SDMMC1_CMD),\GPIO_VDD_3V3_SD_CARD_EN,          \GPIO_TONE_ALARM_IDLE,             \GPIO_OTGFS_VBUS,                  \PX4_GPIO_PIN_OFF(GPIO_HS_USB_EN), \GPIO_RSSI_IN,                     \FMU_LED_AMBER,                    \GPIO_BTN_SAFETY,                  \TEST1,                            \TEST2,                            \}

修改后再对固件进行重新编译 make_nora_default ,再将生成的PX4文件烧入飞控板即可


http://www.ppmy.cn/server/146254.html

相关文章

UPLOAD LABS | PASS 01 - 绕过前端 JS 限制

关注这个靶场的其它相关笔记:UPLOAD LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 本关的目标是上传一个 WebShell 到目标服务器上,并成功访问: 我们直接尝试上传后缀为 .php 的一句话木马: 如上,靶场弹…

鲜花销售管理系统|Java|SSM|VUE| 前后端分离

【重要1⃣️】前后端源码万字文档部署文档 【重要2⃣️】正版源码有问题包售后 【重要3⃣️】可复制品不支持退换货 【包含内容】 【一】项目提供非常完整的源码注释 【二】相关技术栈文档 【三】源码讲解视频 【其它服务】 【一】可…

Day48 | 动态规划 :线性DP 编辑距离

Day48 | 动态规划 :线性DP 编辑距离 动态规划应该如何学习?-CSDN博客 本次题解参考自灵神的做法,大家也多多支持灵神的题解 最长公共子序列 编辑距离_哔哩哔哩_bilibili 动态规划学习: 1.思考回溯法(深度优先遍历…

【青牛科技】电动工具电流反馈型相位控制电路D2010

概述: D2010是一块相位控制集成电路,采用双级工艺。具有负载电流保护、软启动等功能。广泛应用于机床马达的控制。 主要特点: 全波电流感应 主电源可调软启动 防止过流及过高输出程控电流大小, 电压与电流同步 自动触发开关内部电压监控申流…

电机瞬态分析基础(3):空间矢量

1. 空间矢量 空间矢量的概念在交流电机分析与控制中具有非常重要的作用。将各相的电压、电流、磁链等电磁量用空间矢量表达,可以使三相感应电机的动态方程表达更简洁,为电机的分析与控制带来方便,并有助于对交流电机的矢量控制、直接转矩控制…

【Python爬虫五十个小案例】爬取中国天气网城市天气

博客主页:小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介:分享五十个Python爬虫小案例 引言 天气数据在很多领域都非常重要,比如天气预报、旅游、健康等。通过爬取天气网站的公开数据,可以方便地获取各地的天气情…

GPT分区、格式化与自动挂载

GPT分区、格式化与自动挂载 操作场景前提条件操作步骤 操作场景 云硬盘容量大于2TiB时,只能使用parted工具为磁盘新建GPT分区。 前提条件 云硬盘已挂载到云服务器上。 操作步骤 使用root用户登录进入云服务器;安装parted工具; # 检查pa…

GateWay使用手册

好的&#xff0c;下面是优化后的版本。为了提高可读性和规范性&#xff0c;我对内容进行了结构化、简化了部分代码&#xff0c;同时增加了注释说明&#xff0c;便于理解。 1. 引入依赖 在 pom.xml 中添加以下依赖&#xff1a; <dependencies><!-- Spring Cloud Gate…