欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > 【PX4_Autopolite飞控源码】中飞控板初始化过程中的引脚IO控制(拉低/拉高)

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

2025/5/2 1:31:15 来源:https://blog.csdn.net/kirioo/article/details/144063901  浏览:    关键词:【PX4_Autopolite飞控源码】中飞控板初始化过程中的引脚IO控制(拉低/拉高)

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

打开对应的路径我的是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文件烧入飞控板即可

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词