Ardupilot中的串口调试以及example学习

Ardupilot代码提供了丰富的学习历程,方便新手入门。官方网站已经给出了具体的实验步骤,我这里只是重复做了一下。
首先,可以通过 ./waf list|grep 'examples' 查看对应的examples都有哪些。然后将对应的example 编译到板子之中即可。执行指令如下:

./waf configure --board=Pixhawk1
./waf build --target examples/UART_test --upload

也可以通过sitl的方式来查看,具体如下:

./waf configure --board=sitl
./waf build --target examples/UART_test

如果是sitl则可以直接执行查看结果,操作如下:

./build/sitl/example/UART_test -M heli -C

注:

  1. ardupilot中的串口设备是和bootloader中的serial顺序相关的,按照bootloader中顺序给定串口serial 1,2,3(程序中给的是uart A,B ,C ,D)
  2. 在每个机型的文件里面都有一个wscript文件,里面包含有编译时候需要编译的文件内容。例如 /ardupilot/Arudcopter/wscript

下面给出一个示例程序:

#include <AP_HAL/AP_HAL.h>

void setup();
void loop();

const AP_HAL::HAL& hal= AP_HAL::get_HAL();

static void uart_setup(AP_HAL::UARTDriver *uart, const char *name)
{
    if(uart ==nullptr)
    {
        return;
    }
    uart->begin(57600);
}

void setup()
{
    hal.scheduler->delay(1000);
    uart_setup(hal.uartA,"helloA");
    uart_setup(hal.uartB,"helloB");
    uart_setup(hal.uartC,"helloC");

}

static void uart_test(AP_HAL::UARTDriver *uart, const char* name)
{
    if(uart == nullptr)
    {
        return;
    }
    uart->printf("%s at the time %.3f\n", name, AP_HAL::millis()*0.001f);

}

void loop()
{
    hal.scheduler->delay(300);
    uart_test(hal.uartA,"helloA");
    uart_test(hal.uartB,"helloB");
    uart_test(hal.uartC,"helloC");
}
AP_HAL_MAIN();

程序运行结果如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值