找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stm32f103使用hal库读取sbus协议(乐迪at9s航模遥控器)

[复制链接]
跳转到指定楼层
楼主
ID:602058 发表于 2023-7-22 10:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sbus电路用8050搭一个就行,之前的都是标准库写的,这里用hal库移植了一下,亲测能用,一共有8路,做个遥控啥的可以用。
        if(usart1_stop_flag==1)
        {
            usart1_stop_flag=0;
            channel[0] = (((sbus[1] & 0x7) << 8)   | sbus[0])*0.5+30;//*0.77+767;                                
                        channel[1] = (((sbus[2] & 0x3f) << 5)  | (sbus[1] >> 3))*0.5+30;//*0.77+767;
                        channel[2] = (((sbus[4] & 0x1)<<10)    | (sbus[3] << 2) | (sbus[2] >> 6))*0.261+279.27;//*0.77+767;
                        channel[3]=  (((sbus[5] & 0xf) << 7)   | (sbus[4] >> 1))*0.5+30;//*0.77+767;
                        channel[4]=  (((sbus[6] & 0x7f) << 4)  | (sbus[5] >> 4))*0.5+30;//*0.77+767;
                        channel[5]=  (((sbus[8] & 0x2) << 9)   | (sbus[7] << 1) | (sbus[6] >> 7))*0.5+30;//*0.77+767;
                        channel[6] = (((sbus[9] & 0x1f) << 6)  | (sbus[8] >> 2))*0.5+30;//*0.77+767;
                        channel[7] = ((sbus[10]  << 3)         | (sbus[9] >> 5))*0.5+30;//*0.77+767;

                printf("1=%d\t",channel[0]);
                printf("2=%d\t",channel[1]);
                printf("3=%d\t",channel[2]);
                printf("4=%d\t",channel[3]);
                printf("5=%d\t",channel[4]);
                printf("6=%d\t",channel[5]);
                printf("7=%d\t",channel[6]);
                printf("8=%d\r\n ",channe


原理图:无
仿真:无
代码下载: szg_at9s.7z (5.6 MB, 下载次数: 10)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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