OpenEdv-开源电子网

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

请问大家搞过GY-26 电子指南针没???我的读书想读取角度一直是0??没变化,求指点。。。。

[复制链接]

8

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-1-19
在线时间
0 小时
发表于 2015-2-1 15:58:28 | 显示全部楼层 |阅读模式
5金钱


还有给的51程序里边
#define WriteDeviceAddress   0xE0  //定义器件在IIC总线中的地址
#define ReadDviceAddress     0xE1     //器件在IIC总线中地址+1

stm32文件
[mw_shl_code=c,true]main.c文件[/mw_shl_code] [mw_shl_code=c,true]#include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "lcd.h" #include "usart.h" #include "usmart.h" #include "24cxx.h" //ALIENTEK战舰STM32开发板实验22 //IIC 实验 //技术支持:www.openedv.com //广州市星翼电子科技有限公司 //要写入到24c02的字符串数组 const u8 TEXT_Buffer[]={"WarShipSTM32 IIC TEST"}; #define SIZE sizeof(TEXT_Buffer) int main(void) { u8 key; u16 i=0; u8 datatemp[SIZE]; u8 data,temp; delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 KEY_Init(); LED_Init(); //LED端口初始化 LCD_Init(); usmart_dev.init(72); //初始化USMART AT24CXX_Init(); //IIC初始化 POINT_COLOR=RED;//设置字体为红色 LCD_ShowString(60,50,200,16,16,"WarShip STM32"); LCD_ShowString(60,70,200,16,16,"IIC TEST"); LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(60,110,200,16,16,"2012/9/9"); LCD_ShowString(60,130,200,16,16,"WK_UP:Write KEY1:Read"); //显示提示信息 if(key==KEY_DOWN)//KEY_DOWN按下,读取字符串并显示 { AT24CXX_WriteOneByte(read,0x00); AT24CXX_WriteOneByte(read,0x31); LCD_ShowString(60,170,200,16,16,"Start Read 24C02.... "); //AT24CXX_Read(read,datatemp,SIZE); AT24CXX_ReadOneByte(read); LCD_ShowString(60,170,200,16,16,"The Data Readed Is: ");//提示传送完成 //LCD_ShowString(60,190,200,16,16,datatemp);//显示读到的字符串 LCD_ShowxNum(150,190,temp,4,16,0); } i++; delay_ms(10); if(i==20) { LED0=!LED0;//提示系统正在运行 i=0; } } } [/mw_shl_code]
[mw_shl_code=c,true]#include "24cxx.h" #include "delay.h" ////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途 //ALIENTEK战舰STM32开发板 //24CXX驱动 代码(适合24C01~24C16,24C32~256未经过测试!有待验证!) //正点原子@ALIENTEK //技术论坛:www.openedv.com //修改日期:2012/9/9 //版本:V1.0 //版权所有,盗版必究。 //Copyright(C) 广州市星翼电子科技有限公司 2009-2019 //All rights reserved ////////////////////////////////////////////////////////////////////////////////// 24cxx.c文件 //初始化IIC接口 void AT24CXX_Init(void) { IIC_Init(); } //在AT24CXX指定地址读出一个数据 //ReadAddr:开始读数的地址 //返回值 :读到的数据 u8 AT24CXX_ReadOneByte(u16 ReadAddr) { u8 temp=0; IIC_Start(); if(EE_TYPE>AT24C16) { IIC_Send_Byte(0XE0); //发送写命令 IIC_Wait_Ack(); IIC_Send_Byte(ReadAddr>>8);//发送高地址 IIC_Wait_Ack(); }else IIC_Send_Byte(0XE0+((ReadAddr/256)<<1)); //发送器件地址0XA0,写数据 IIC_Wait_Ack(); IIC_Send_Byte(ReadAddr%256); //发送低地址 IIC_Wait_Ack(); IIC_Start(); IIC_Send_Byte(0XE1); //进入接收模式 IIC_Wait_Ack(); temp=IIC_Read_Byte(0); IIC_Stop();//产生一个停止条件 return temp; } //在AT24CXX指定地址写入一个数据 //WriteAddr :写入数据的目的地址 //DataToWrite:要写入的数据 void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite) { IIC_Start(); if(EE_TYPE>AT24C16) { IIC_Send_Byte(0XE0); //发送写命令 IIC_Wait_Ack(); IIC_Send_Byte(WriteAddr>>8);//发送高地址 }else { IIC_Send_Byte(0XE0+((WriteAddr/256)<<1)); //发送器件地址0XA0,写数据 } IIC_Wait_Ack(); IIC_Send_Byte(WriteAddr%256); //发送低地址 IIC_Wait_Ack(); IIC_Send_Byte(DataToWrite); //发送字节 IIC_Wait_Ack(); IIC_Stop();//产生一个停止条件 delay_ms(10); } //在AT24CXX里面的指定地址开始写入长度为Len的数据 //该函数用于写入16bit或者32bit的数据. //WriteAddr :开始写入的地址 //DataToWrite:数据数组首地址 //Len :要写入数据的长度2,4 void AT24CXX_WriteLenByte(u16 WriteAddr,u32 DataToWrite,u8 Len) { u8 t; for(t=0;t<Len;t++) { AT24CXX_WriteOneByte(WriteAddr+t,(DataToWrite>>(8*t))&0xff); } } //在AT24CXX里面的指定地址开始读出长度为Len的数据 //该函数用于读出16bit或者32bit的数据. //ReadAddr :开始读出的地址 //返回值 :数据 //Len :要读出数据的长度2,4 u32 AT24CXX_ReadLenByte(u16 ReadAddr,u8 Len) { u8 t; u32 temp=0; for(t=0;t<Len;t++) { temp<<=8; temp+=AT24CXX_ReadOneByte(ReadAddr+Len-t-1); } return temp; } //检查AT24CXX是否正常 //这里用了24XX的最后一个地址(255)来存储标志字. //如果用其他24C系列,这个地址要修改 //返回1:检测失败 //返回0:检测成功 u8 AT24CXX_Check(void) { u8 temp; temp=AT24CXX_ReadOneByte(255);//避免每次开机都写AT24CXX if(temp==0X55)return 0; else//排除第一次初始化的情况 { AT24CXX_WriteOneByte(255,0X55); temp=AT24CXX_ReadOneByte(255); if(temp==0X55)return 0; } return 1; } //在AT24CXX里面的指定地址开始读出指定个数的数据 //ReadAddr :开始读出的地址 对24c02为0~255 //pBuffer :数据数组首地址 //NumToRead:要读出数据的个数 void AT24CXX_Read(u16 ReadAddr,u8 *pBuffer,u16 NumToRead) { while(NumToRead) { *pBuffer++=AT24CXX_ReadOneByte(ReadAddr++); NumToRead--; } } //在AT24CXX里面的指定地址开始写入指定个数的数据 //WriteAddr :开始写入的地址 对24c02为0~255 //pBuffer :数据数组首地址 //NumToWrite:要写入数据的个数 void AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite) { while(NumToWrite--) { AT24CXX_WriteOneByte(WriteAddr,*pBuffer); WriteAddr++; pBuffer++; } }[/mw_shl_code] [mw_shl_code=c,true]24cxx.h文件
[mw_shl_code=c,true]#ifndef __24CXX_H #define __24CXX_H #include "myiic.h" ////////////////////////////////////////////////////////////////////////////////// //本程序只供学习使用,未经作者许可,不得用于其它任何用途 //ALIENTEK战舰STM32开发板 //24CXX驱动 代码(适合24C01~24C16,24C32~256未经过测试!有待验证!) //正点原子@ALIENTEK //技术论坛:www.openedv.com //修改日期:2012/9/9 //版本:V1.0 //版权所有,盗版必究。 //Copyright(C) 广州市星翼电子科技有限公司 2009-2019 //All rights reserved ////////////////////////////////////////////////////////////////////////////////// #define read 0Xe0 #define AT24C01 127 #define AT24C02 255 #define AT24C04 511 #define AT24C08 1023 #define AT24C16 2047 #define AT24C32 4095 #define AT24C64 8191 #define AT24C128 16383 #define AT24C256 32767 //Mini STM32开发板使用的是24c02,所以定义EE_TYPE为AT24C02 #define EE_TYPE AT24C02 u8 AT24CXX_ReadOneByte(u16 ReadAddr); //指定地址读取一个字节 void AT24CXX_WriteOneByte(u16 WriteAddr,u8 DataToWrite); //指定地址写入一个字节 void AT24CXX_WriteLenByte(u16 WriteAddr,u32 DataToWrite,u8 Len);//指定地址开始写入指定长度的数据 u32 AT24CXX_ReadLenByte(u16 ReadAddr,u8 Len); //指定地址开始读取指定长度数据 void AT24CXX_Write(u16 WriteAddr,u8 *pBuffer,u16 NumToWrite); //从指定地址开始写入指定长度的数据 void AT24CXX_Read(u16 ReadAddr,u8 *pBuffer,u16 NumToRead); //从指定地址开始读出指定长度的数据 u8 AT24CXX_Check(void); //检查器件 void AT24CXX_Init(void); //初始化IIC #endif [/mw_shl_code]

[/mw_shl_code]


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-2-1 19:16:25 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

8

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-1-19
在线时间
0 小时
 楼主| 发表于 2015-2-1 19:25:54 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
哈哈,谢谢原子哥
回复

使用道具 举报

26

主题

100

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
396
金钱
396
注册时间
2014-2-10
在线时间
67 小时
发表于 2015-2-1 19:46:00 | 显示全部楼层
回复【3楼】电子发烧1314:
---------------------------------
帮顶+1
回复

使用道具 举报

20

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2014-3-23
在线时间
22 小时
发表于 2015-5-13 16:08:45 | 显示全部楼层
哥们问题解决了吗
回复

使用道具 举报

20

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2014-3-23
在线时间
22 小时
发表于 2015-5-13 16:12:04 | 显示全部楼层
楼主能否把程序给我来一份我着急用,邮箱是:952683526@qq.com
回复

使用道具 举报

20

主题

118

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2014-3-23
在线时间
22 小时
发表于 2015-5-19 20:52:16 | 显示全部楼层
回复【3楼】电子发烧1314:
---------------------------------
哥们请问你的程序调出来了吗
回复

使用道具 举报

8

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-1-19
在线时间
0 小时
 楼主| 发表于 2015-5-29 20:14:57 | 显示全部楼层
回复【7楼】张仁良:
---------------------------------
没解决 ,后边有其他事忙就搁置了
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-7-16
在线时间
0 小时
发表于 2015-7-16 15:08:46 | 显示全部楼层
回复【8楼】电子发烧1314:
---------------------------------
楼主  关于GY-26的调试通过没?源码能不能发我一份,很急,2426196412@qq.com
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2015-7-16
在线时间
0 小时
发表于 2015-7-16 15:09:35 | 显示全部楼层
回复【6楼】张仁良:
---------------------------------
楼主发给你没?如果发的了话能不能发我一份,2426196412@qq.com
回复

使用道具 举报

5

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2011-7-30
在线时间
6 小时
发表于 2016-4-26 10:27:49 | 显示全部楼层
有谁调试成功了吗  我也遇到读取寄存器 读出来的都是0xE1
回复

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2017-10-26
在线时间
3 小时
发表于 2017-11-2 18:34:17 | 显示全部楼层
我和你遇到了相同的问题,我的指令能正常写进去,但是每次读到的都是一个固定的值。你解决了吗?能分享一下解决方法吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-7 16:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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