OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3122|回复: 5

原子6050例程中两个函数怎么感觉功能一样?是不是重复了?

[复制链接]

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-7-15
在线时间
23 小时
发表于 2016-7-31 21:48:43 | 显示全部楼层 |阅读模式
2金钱
最近几天在研究上位机代码的编写,今天主要在看正点原子给的6050配套代码,有两个函数感觉功能差不多,只是第二个多了几个欧拉角而已,不知道是不是有功能重复了,如果没有重复那么它们分别是什么功能呢?

本人初学32,问的问题有可能比较低级,还请大虾们多多指点!


代码如下:





[mw_shl_code=c,true]//发送加速度传感器数据和陀螺仪数据
//aacx,aacy,aacz:x,y,z三个方向上面的加速度值
//gyrox,gyroy,gyroz:x,y,z三个方向上面的陀螺仪值
void mpu6050_send_data(short aacx,short aacy,short aacz,short gyrox,short gyroy,short gyroz)
{
        u8 tbuf[12];
        tbuf[0]=(aacx>>8)&0XFF;
        tbuf[1]=aacx&0XFF;
        tbuf[2]=(aacy>>8)&0XFF;
        tbuf[3]=aacy&0XFF;
        tbuf[4]=(aacz>>8)&0XFF;
        tbuf[5]=aacz&0XFF;
        tbuf[6]=(gyrox>>8)&0XFF;
        tbuf[7]=gyrox&0XFF;
        tbuf[8]=(gyroy>>8)&0XFF;
        tbuf[9]=gyroy&0XFF;
        tbuf[10]=(gyroz>>8)&0XFF;
        tbuf[11]=gyroz&0XFF;
        usart1_niming_report(0XA1,tbuf,12);//自定义帧,0XA1
}       
//通过串口1上报结算后的姿态数据给电脑
//aacx,aacy,aacz:x,y,z三个方向上面的加速度值
//gyrox,gyroy,gyroz:x,y,z三个方向上面的陀螺仪值
//roll:横滚角.单位0.01度。 -18000 -> 18000 对应 -180.00  ->  180.00度
//pitch:俯仰角.单位 0.01度。-9000 - 9000 对应 -90.00 -> 90.00 度
//yaw:航向角.单位为0.1度 0 -> 3600  对应 0 -> 360.0度
void usart1_report_imu(short aacx,short aacy,short aacz,short gyrox,short gyroy,short gyroz,short roll,short pitch,short yaw)
{
        u8 tbuf[28];
        u8 i;
        for(i=0;i<28;i++)tbuf=0;//清0
        tbuf[0]=(aacx>>8)&0XFF;
        tbuf[1]=aacx&0XFF;
        tbuf[2]=(aacy>>8)&0XFF;
        tbuf[3]=aacy&0XFF;
        tbuf[4]=(aacz>>8)&0XFF;
        tbuf[5]=aacz&0XFF;
        tbuf[6]=(gyrox>>8)&0XFF;
        tbuf[7]=gyrox&0XFF;
        tbuf[8]=(gyroy>>8)&0XFF;
        tbuf[9]=gyroy&0XFF;
        tbuf[10]=(gyroz>>8)&0XFF;
        tbuf[11]=gyroz&0XFF;       
        tbuf[18]=(roll>>8)&0XFF;
        tbuf[19]=roll&0XFF;
        tbuf[20]=(pitch>>8)&0XFF;
        tbuf[21]=pitch&0XFF;
        tbuf[22]=(yaw>>8)&0XFF;
        tbuf[23]=yaw&0XFF;
        usart1_niming_report(0XAF,tbuf,28);//飞控显示帧,0XAF
}  [/mw_shl_code]

最佳答案

查看完整内容[请看2#楼]

不重复,是两个功能,一个是自定义显示帧,一个是匿名的姿态显示帧,自定义的只能看波形,匿名的姿态显示可以看3D的模型。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2014-1-2
在线时间
62 小时
发表于 2016-7-31 21:48:44 | 显示全部楼层
不重复,是两个功能,一个是自定义显示帧,一个是匿名的姿态显示帧,自定义的只能看波形,匿名的姿态显示可以看3D的模型。
回复

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-7-15
在线时间
23 小时
 楼主| 发表于 2016-7-31 21:49:19 | 显示全部楼层
@正点原子 求助万能原子哥
回复

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-7-15
在线时间
23 小时
 楼主| 发表于 2016-8-1 09:23:10 | 显示全部楼层
llqzx 发表于 2016-7-31 21:48
不重复,是两个功能,一个是自定义显示帧,一个是匿名的姿态显示帧,自定义的只能看波形,匿名的姿态显示可 ...

是这个样子啊。
还有两个问题
1.为什么第二个函数中有一个循环清零语句for(i=0;i<28;i++)tbuf=0;
然而第一个没有呢?
2.为什么第二个函数它只有24个数据却要定义28的长度呢?
回复

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-7-15
在线时间
23 小时
 楼主| 发表于 2016-8-1 09:23:23 | 显示全部楼层
回复

使用道具 举报

15

主题

68

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
290
金钱
290
注册时间
2014-1-2
在线时间
62 小时
发表于 2016-8-1 09:49:33 | 显示全部楼层
一,第一个发送定长12个字节,不用清零,赋值直接覆盖。
二,飞控帧协议规定的是28个长度,只用了前24个.

一切问题要根据具体情况来看,因为使用了匿名的上位机,这样写是为了适用上位机软件。具体可以参考匿名的通信协议。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 03:05

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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