找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1716|回复: 4
打印 上一主题 下一主题
收起左侧

关于“STC51单片机四轴飞控开源项目”的问题

[复制链接]
跳转到指定楼层
楼主
ID:975881 发表于 2021-12-26 17:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景:老师让我们根据这个源码和相关内容实现和做出这个飞控,以下为出处。但是我遇到了问题,一直解决不了。
http://www.51hei.com/bbs/dpj-99585-1.html
现状:启动后,串口能够打印出启动的状态(自己设置 的串口信息),但是电机不会启动。偶尔有一到两个电机会启动,但是遥控器却不能进行控制
分析:我猜测是输出的信号波形无法使电机启动,同时,一些值不会随着遥控器的一些信号而发生变化。通过打印信息,发现
        EAXSFR();        //访问XFR
        PWM0T2 = (u16)(PWM0 * 2);
        PWM1T2 = (u16)(PWM1 * 2);
        PWM2T2 = (u16)(PWM2 * 2);        
        PWM3T2 = (u16)(PWM3 * 2);        //进行输出脉冲信号更新
        P_SW2  = SW2_tmp;        //恢复SW2设置

这样的代码没有进行更新,不知道什么
同时在初始化中一些赋值
        PWM0T1 = 4000;//第一个翻转点 4000
        PWM1T1 = 4000;
        PWM2T1 = 4000;
        PWM3T1 = 4000;
//        PWM4T1 = 4000;
//        PWM5T1 = 4000;
//        PWM6T1 = 4000;
//        PWM7T1 = 4000;

        PWM0T2 = 2000;  //第二个翻转点 2000
        PWM1T2 = 2000;
        PWM2T2 = 2000;
        PWM3T2 = 2000;
//        PWM4T2 = 2000;
//        PWM5T2 = 2000;
//        PWM6T2 = 2000;
//        PWM7T2 = 2000;


打印出来的信息确实差别很大,明明在别的地方没有进行赋值,就很奇怪为什么打印出来是这样的。
0 4000 8000 12337(PWM0T1 PWM1T1PWM2T1 PWM3T1
但是打印出来这样确实能够解释我的现象。
然而有的大佬能够实现最起码能够启动能够控制呢能够低速旋转。
非常奇怪,不理解。各位走过的大佬可以解答下吗?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:844772 发表于 2021-12-27 11:39 | 只看该作者
1.你程序要是抄的,要先配遥控器啊,确认所有遥控操作一致,这个很简单用万用表就行了。
2.电调上电要解锁,就是识别飞控的最大行程和最小行程,你要查一下你的电调解锁是不是跟程序一致,一般XXD的电调要50Hz时,分别给占空比10、5。都有BB声的。
3.你第一段程序就贴出了赋值语句,怎么说没赋值?
这个难度的估计也就是本科小作业论文,搞懂几个模块怎么配合就够了,玩真的就记得安全第一,千万别带桨运行。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:975881 发表于 2021-12-27 14:53 来自触屏版 | 只看该作者
额,这个是直接用和学习他们的代码,遥控是没有问题的,能够改变其中PWM0的值(这个值是程序里的自定义变量),但是在对PWM0T2赋值过程中,我经过在赋值语句下面加了向串口打印的语句,但是明明PWM0会变,PWM0T2却不会变
回复

使用道具 举报

地板
ID:975881 发表于 2021-12-27 14:54 来自触屏版 | 只看该作者
PWM0T2的值会不会被自动赋值呀?
回复

使用道具 举报

5#
ID:844772 发表于 2021-12-27 15:42 | 只看该作者
putiz 发表于 2021-12-27 14:53
额,这个是直接用和学习他们的代码,遥控是没有问题的,能够改变其中PWM0的值(这个值是程序里的自定义变量 ...

遥控要每个摇杆都对应准确才行,不是有反应就行,要拿示波器看波形对不对,占空比不对也要调;
另外,PWM中断级别很低的,串口中断会打断它赋值,所以,即使程序没问题,但你的串口中断就会导致PWM不对,你觉得有问题不如用示波器看看。我觉得没准把串口的输出全注释掉就能用了。
你现在主要问题是电调没开锁,它需要摇杆开锁。别管PWM0T2,没听说用它前不赋值的。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表