大疆开发板A型基于HAL库使用RoboMaster 遥控器(DT7&DR16)及Debug在线调试

资料官网:RoboMaster 机甲大师赛

1.查看开发板A型芯片资料

2.查看遥控器用户手册

3.查看开发板A型DBUS接口说明

4.查看DBUS参数(配置STM32CubeMX需要)

 5.配置STM32CubeMX

1)新建new project,选择开发板A型芯片型号

 2)打开外部高速时钟

下面是我的时钟树配置 

3) 配置USART1通信接口

 选择Asynchronous(异步通信)方式,并检查对应IO口是否与原理图对应

根据DBUS参数,配置参数设置

配置DMA (直接存储器访问)

优先级选最高,模式选择循环

 4)常规配置及生成代码

注意生成路径不要有中文 

 6.参考遥控器用户手册例程配置工程文件(keil5MDK)

打开工程文件,先编译

声明数据结构体和缓存数组

RC_Ctl_t RC_Ctl;//声明数据结构体
uint8_t sbus_rx_buffer[18];//声明缓存数组

初始化DMA和使能IDLE 中断

HAL_UART_Receive_DMA(&huart1,sbus_rx_buffer,18);//初始化DMA
__HAL_UART_ENABLE_IT(&huart1, UART_IT_IDLE);//IDLE 中断使能

 定义中断回调函数

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *UartHandle) 
{  
	RC_Ctl.rc.ch0 = (sbus_rx_buffer[0]| (sbus_rx_buffer[1] << 8)) & 0x07ff;          
	RC_Ctl.rc.ch1 = ((sbus_rx_buffer[1] >> 3) | (sbus_rx_buffer[2] << 5)) & 0x07ff;       
	RC_Ctl.rc.ch2 = ((sbus_rx_buffer[2] >> 6) | (sbus_rx_buffer[3] << 2) | (sbus_rx_buffer[4] << 10)) & 0x07ff;          
	RC_Ctl.rc.ch3 = ((sbus_rx_buffer[4] >> 1) | (sbus_rx_buffer[5] << 7)) & 0x07ff;           
	RC_Ctl.rc.s1  = ((sbus_rx_buffer[5] >> 4)& 0x000C) >> 2;                           
	RC_Ctl.rc.s2  = ((sbus_rx_buffer[5] >> 4)& 0x0003);  

	RC_Ctl.rc.sw = sbus_rx_buffer[16]|(sbus_rx_buffer[17]<<8);
}

在main.h中添加串口数据的结构体

typedef struct
{
	struct
	{ 
		unsigned short ch0;
		unsigned short ch1;
		unsigned short ch2;
		unsigned short ch3;
		unsigned char s1;
		unsigned char s2;
		
		unsigned short sw;
	}rc;
}RC_Ctl_t;

 7.Debug在线调试(后续补充)

根据说明书要求把DR16接收器连接到开发板A型相对应接口,再连上ST-Link烧录器

下面是ST-Link引脚图

开发板A型SWD引脚说明

 确认无误后开启Debug 


如果对你有帮助,谢谢你的点赞支持!

  • 19
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
大疆A型开发板是一款功能强大的开发板,拥有丰富的接口和强大的处理能力。其中,串口通信是一种常用的通信方式。 大疆A型开发板提供了多个串口接口,通过这些接口可以实现与其他设备的通信。在进行串口通信前,我们首先需要了解串口通信的原理和基本操作。 串口通信是通过串行接口将数据逐位传输的一种通信方式。在大疆A型开发板上,通常使用UART串口进行通信。我们可以通过配置串口的波特率、数据位、停止位、校验位等参数,来确定通信的速率和数据格式。 在大疆A型开发板上进行串口通信的操作一般有以下几个步骤: 1. 初始化串口:首先需要配置串口的参数,如波特率,数据位,停止位等。可以通过相关API函数来实现初始化操作。 2. 打开串口:通过打开串口的操作,将串口与外部设备连接起来,使其可以进行数据的传输。 3. 发送数据:使用串口发送数据的功能函数,将需要传输的数据发送给外部设备。可以通过指定串口的编号和需要发送的数据来实现。 4. 接收数据:使用串口接收数据的功能函数,从外部设备中接收发送过来的数据。可以通过指定串口的编号和接收数据的缓冲区地址来实现。 大疆A型开发板可以通过串口通信与其他设备进行数据的交互,例如与传感器、电机控制器等进行通信。通过串口通信,可以实现数据的发送和接收,以实现与外部设备的交互和控制,从而扩展了开发板的功能和应用场景。 总的来说,大疆A型开发板串口通信具有简单易用、功能强大的特点,可以广泛应用于各种需要与外部设备进行数据交互的项目中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值