找回密码
 立即注册

QQ登录

只需一步,快速开始

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

GY25Z模块资料与各单片机平台驱动程序与PC软件下载

[复制链接]
跳转到指定楼层
楼主
GY-25Z怎么用啊


全部资料51hei下载地址:
GY25Z_V1资料.rar (2.1 MB, 下载次数: 38)


单片机源程序如下:
  1. #include <reg52.h>
  2. #include "string.h"
  3. #include "usart.h"
  4. #include "stdio.h"
  5. /*
  6. 硬件接法:
  7. GY-25Z---c51
  8. 1、GY-25Z_RX---c51_TX,c51复位将发送 输出数据设置指令和自动输出设置指令给模块
  9. 2、c51_TX---FT232_RX,STM32将数据上传给上位机
  10. 3、GY-25Z_TX---c51_RX,接收模块数据
  11. 软件说明:
  12. 该程序采用串口方式获取模块数据,波特率9600
  13. 所以得用上位机先将模块串口设置成9600,然后再进行以上操作;

  14. 注:中断函数位于stc_it.c
  15. 联系方式:
  16. http://shop62474960.taobao.com/?spm=a230r.7195193.1997079397.2.9qa3Ky&v=1
  17. */
  18. void delay(uint16_t x)
  19. {
  20.           while(x--);
  21. }
  22. int main(void)
  23. {
  24.         uint8_t sum=0,i=0,count=0;        
  25.         int16_t rpy[3];
  26.         uint32_t pressure=0;
  27.     double  out_P=0;
  28.         Usart_Int(9600);//串口初始化,波特率9600
  29.         LED_0=1;
  30.         ///////////输出数据设置///////////////////
  31.         USART_send_byte(0xa5);
  32.     USART_send_byte(0x55);
  33.     USART_send_byte(0x10);
  34.     USART_send_byte(0x0a);
  35.     delay(60000);         
  36.         delay(60000);
  37.         //////////自动输出设置//////////////////
  38.         USART_send_byte(0xa5);
  39.     USART_send_byte(0x56);
  40.     USART_send_byte(0x02);
  41.     USART_send_byte(0xfd);
  42.          delay(10000);
  43.         while(1)
  44.         {        
  45.            if(Receive_ok)//串口接收完毕
  46.                 {                  
  47.                         for(sum=0,i=0;i<(RX_BUF[3]+4);i++)
  48.                         sum+=RX_BUF[i];
  49.                         count=0;
  50.                     if(sum==RX_BUF[i])//校验和判断
  51.                         {           
  52.                                     if(RX_BUF[2]&0x01)          //加速度数据
  53.                                   count=6;
  54.                                   if(RX_BUF[2]&0x02)  //陀螺数据
  55.                                   count+=6;
  56.                                   if(RX_BUF[2]&0x04)  //磁场数据
  57.                                   count+=6;
  58.                                   if(RX_BUF[2]&0x08)  //四元数数据
  59.                                   count+=8;
  60.                                   if(RX_BUF[2]&0x10)  //欧拉角数据
  61.                                   {
  62.                                              LED_0=0;                             
  63.                                          rpy[0]=(RX_BUF[4+count]<<8)|RX_BUF[5+count];
  64.                                      rpy[1]=(RX_BUF[6+count]<<8)|RX_BUF[7+count];
  65.                                      rpy[2]=(RX_BUF[8+count]<<8)|RX_BUF[9+count];
  66.                                        
  67.                                           TI=1;  
  68.                                          printf("RPY: %d , %d , %d ,\r\n",rpy[0]/100,rpy[1]/100,rpy[2]/100);
  69.                                      count+=6;
  70.                                   }

  71.                         }
  72.                         Receive_ok=0;//处理数据完毕标志
  73.                
  74.                 }               
  75.         }
  76. }
复制代码


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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