STC8A无人机(驱动篇)

2022-11-29 15:09:43 浏览数 (1)

笑死,第三篇了都,好久都没有写这么多了,第三篇是我最近看的一个STC官网的小项目,一个无人机的项目,感觉代码写的很好,这里简单的分析一下。

即没有GPS信号或GPS信号不佳的环境,飞控系统仅保持无人机姿态的平稳,无人机无法精准定位而呈现明显飘移。

通过一定的操纵,使飞机姿态运动符合飞行员意愿的可控飞行。 百度百科

差不多就是这样

电机的顺序

电源是单片机和电调

这就是连上了

留的排针接口

这个是接收机的输入和电调的PWM输出

IMU

这个是电调控制输出

PPM捕获

航灯

单独一个脚

还有蜂鸣器

预留了一路串口

完整Github上面见

组装样子

这些功能在源码里面都有

实现的源码其实很少,就是几个文件而已,这里就不用keli了,太丑了

大概主文件里面的函数就是这些了

一般来说读源码的时候就是两个路子,一个是一步一步的跳转,还有就是看完驱动再跑主的。

我以前是第一种,但是感觉效率有点低,这里看的方法就是先驱动吧。

我们说51的时候都是在说着老土,过气什么的,但是你玩的精通又有几个,其次在STC里面也有了库的概念,这里就带你看一下。

这个就是所谓的库文件

SFR定义一些位置

这谢是老版的51没有的,后面加的

因为本身这个东西都没有很难,所以在封装库的时候也就是使用了宏定义了。名字是很好的,做到了见名字其意。

带着注释很好的

IO的使能

还记得经典的定时器不?

51单片机定时器详细全解.上

51单片机定时器详细全解.下

快来补课呀!

不管怎么说,库开发是深入人心的,封装只是行为而已,我很很欣赏STC的精神的。

就直面自己物美价廉这个事情

离谱

反正友商是学不来

PWMGO是PWM初始化

这个是配置的文件

延时函数内部使用的是时钟频率

这个是STC定义的数据类型

PWM的输出都是强推挽模式

数据指针

PWM时钟选择

PWM的分频器

这个是数据手册

先配置寄存器,然后就是中断寄存位,异常检测,控制寄存器也打开

软件置0

这个是对单独的通道设置

安排

ADC是测量电压来的

初始化

中断标志

这个就是计算值

最重要的MPU6050传感器

里面的一些寄存器的位置

初始化MPU6050

里面的延时信号

这个是IIC的数据定义引脚

IIC的写入

一对儿信号

接收和回应

发送和接收

很简单了

这个就是起始信号了

下篇是主函数了。

代码语言:javascript复制
http://www.stcmcudata.com/

0 人点赞