作为无人机方面做嵌入式编写的飞控总结1-基本协议驱动介绍2.2-无人机云台的can 超频开发编程小结

本文主要是介绍作为无人机方面做嵌入式编写的飞控总结1-基本协议驱动介绍2.2-无人机云台的can 超频开发编程小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导:因为云台的配合,无人机可以各种场合,都能执行一大堆任务,云台是无人机之中最重要的外设之一;

1.所采购云台的基本信息

    云台ID

    帧要求

     收发要求


2.开始修改我上个博客所说的demo,进行修改,匹配波特率

(1)我们都知道,can的是5K~1MBPS;现在的设备要求超频到3MHz 使用;

    官方给的参数是基于STM32F103的配置:tb1=4,tb2=1,psr=2,can所在总线时钟是36MHz;则波特率计算为:36MHz/(4+1+1)/2=3M bps

我需要在F4上,总线时钟是42MHz,tb1=4,tb2=2,psr=2;波特率=42MHz/(4+2+1)/2=3Mbps

3.初始化配置:

初始化的配置有四个(IO口,can时钟,过滤器初始化,中断初始化),但是中断没有使用;

(1)修改其从设备ID号;


4.收发设置

该设备的收发设置有要求

发送的实质

接收的设置


5.应用和测试

//----------------------------------------新can的云台变量---------------------------------------------------------//
//1.查询0x31================================= 
u8 Check_Roll_Sta[1]={01};	//横滚开关状态查询,返回1-ON,0-OFF
//硬件版本查询0x31
u8 Check_Hard_Vision[1]={1};
//软件版本查询0x32
u8 Check_Sofe_Vision[1]={1};
//电量查询0x33
u8 Check_PM[1]={0x01};		//电量查询,返回电量百分比和电压值
//模式查询0x34
u8 Check_mode[1]={0};		//模式查询,正常返回1,2,3,4
//横滚开关状态查询0x35
u8 Check_Py_state[1]={0x34};	//py状态查询,正常返回0,1//2.控制0x21=======================================
u8 Ctl_OFF[2]={0x02,0x07};	//控制云台关机
u8 Ctl_ON[2] ={0x01,0x06};			//控制云台开机
u8 Ctrl_Lock_Head[2]={0,0x08};	//锁头模式设置,成功会返回0x0800
u8 Ctrl_Horizontal_follow[2]={0x01,0x08};//水平跟随模式设置,成功会返回0x0801
u8 Ctrl_Full_follow[2]={0x02,0x08};	//全跟随模式设置,成功会返回0x0802
u8 Ctrl_Roll_follow[2]={0x03,0x08};	//横滚跟随模式设置,成功会返回0x0803
//姿态控制0x22======================================
u8 Ctrl_Yaw_Pitch[4]={0,0, 0,0};//前两个yaw控制AD值,后两个为pitch控制ad值,无返回;//3.校准0x11=======================calibration
u8 Cal_GYRO[2]={0x01,0x0};	//第二位:1-开始,0-结束 陀螺仪零点校准
u8 Cal_ADC[2]={0x04,0x0};		//第二位:1-开始,0-结束 ADC校准
u8 Cal_ACC[2]={0x05,0}; 		//第二位:1-开始,0-结束  加速度校准(自动翻转)//4.配置0x13========================
u8 Set_follow[5]={01,0x32,0x32,0x0F,0x0F};	//第2-5位分别表示:水平跟随速度(0~100)默认50,上下跟随速度(0~100)默认50,水平跟随死区(0~30)默认15	上下跟随死区(0~30)默认15
u8 Set_PID[2] ={0x02,0x02};									//Pid等级(n),具体数值,未说明
//--------------------------------------------------------------------------------------------------------------//


=============================

6 验证测试


            根据现象 验证成功!!!

----------------------------------------------------

所用的云台连接见:


这篇关于作为无人机方面做嵌入式编写的飞控总结1-基本协议驱动介绍2.2-无人机云台的can 超频开发编程小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/494662

相关文章

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

python中cv2.imdecode()与cv2.imencode()的使用小结

《python中cv2.imdecode()与cv2.imencode()的使用小结》本文介绍了cv2.imencode()和cv2.imdecode()函数的使用,文中通过示例代码介绍的非常详细,对... 目录1、图片路径带中文的读取和写入1.1 读取1.2 写入2、在网络中传输图片cv2.imencod

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.