资源简介
while(1) //循环
{
Multiple_Read_HMC5883();
x=BUF[0] << 8 | BUF[1];
z=BUF[2] << 8 | BUF[3];
y=BUF[4] << 8 | BUF[5];
a=pow((double)x,2)+pow((double)y,2)+pow((double)z,2);
代码片段和文件信息
//***************************************
// HMC5883 IIC测试程序
// 使用单片机STC89C52
// 晶振:12M
// 显示:串口输出,波特率4800
// 编译环境 Keil uVision2
// 时间:2015年4月8日
//****************************************
#include
#include //Keil library
#include //Keil library
#include
#define uchar unsigned char
#define uint unsigned int
sbit SCL=P1^0; //IIC时钟引脚定义
sbit SDA=P1^1; //IIC数据引脚定义
#define SlaveAddress 0x3C //定义器件在IIC总线中的从地址
typedef unsigned char BYTE;
typedef unsigned short WORD;
BYTE BUF[8]; //接收数据缓存区
uchar geshibaiqianwan; //显示变量
int dis_data; //变量
void delay(unsigned int k);
void Init_HMC5883(void); //初始化5883
void conversion(uint temp_data);
void Single_Write_HMC5883(uchar REG_Addressuchar REG_data); //单个写入数据
uchar Single_Read_HMC5883(uchar REG_Address); //单个读取内部寄存器数据
void Multiple_Read_HMC5883(); //连续的读取内部寄存器数据
//以下是模拟iic使用函数-------------
void Delay5us();
void Delay5ms();
void HMC5883_Start();
void HMC5883_Stop();
void HMC5883_SendACK(bit ack);
bit HMC5883_RecvACK();
void HMC5883_SendByte(BYTE dat);
BYTE HMC5883_RecvByte();
void HMC5883_ReadPage();
void HMC5883_WritePage();
//-----------------------------------
//*********************************************************
void conversion(uint temp_data)
{
wan=temp_data/10000+0x30 ;
temp_data=temp_data%10000; //取余运算
qian=temp_data/1000+0x30 ;
temp_data=temp_data%1000; //取余运算
bai=temp_data/100+0x30 ;
temp_data=temp_data%100; //取余运算
shi=temp_data/10+0x30 ;
temp_data=temp_data%10; //取余运算
ge=temp_data+0x30;
}
/*******************************/
void delay(unsigned int k)
{
unsigned int ij;
for(i=0;i
{
for(j=0;j<121;j++)
{;} }
}
/**************************************
延时5微秒(STC90C52RC@12M)
不同的工作环境需要调整此函数,注意时钟过快时需要修改
当改用1T的MCU时请调整此延时函数
**************************************/
void Delay5us()
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7375 2015-04-15 20:52 5833地磁强度测量\HMC5883
文件 10606 2015-04-15 21:08 5833地磁强度测量\HMC5883.c
文件 8256 2015-04-15 20:52 5833地磁强度测量\HMC5883.hex
文件 46 2015-04-15 20:52 5833地磁强度测量\HMC5883.lnp
文件 21082 2015-04-15 20:52 5833地磁强度测量\HMC5883.LST
文件 22620 2015-04-15 20:52 5833地磁强度测量\HMC5883.M51
文件 7243 2015-04-15 20:52 5833地磁强度测量\HMC5883.OBJ
文件 1055 2015-04-16 16:30 5833地磁强度测量\HMC5883.Opt
文件 0 2015-04-16 16:29 5833地磁强度测量\HMC5883.plg
文件 1654 2015-04-09 22:22 5833地磁强度测量\HMC5883.Uv2
文件 67532 2015-04-08 15:38 5833地磁强度测量\hmc5883.uvopt
文件 580 2015-04-08 15:38 5833地磁强度测量\hmc5883.uvproj
文件 1055 2015-04-16 16:12 5833地磁强度测量\HMC5883_Opt.Bak
文件 1654 2015-04-09 22:01 5833地磁强度测量\HMC5883_Uv2.Bak
文件 0 2015-04-08 15:35 5833地磁强度测量\hmc5883_uvproj.bak
文件 8858 2015-04-08 15:51 5833地磁强度测量\Text1
目录 0 2015-06-21 21:57 5833地磁强度测量
----------- --------- ---------- ----- ----
159616 17
- 上一篇:consul 指南
- 下一篇:HMC5883L 模块的源代码和电路图
相关资源
- HMC5883L罗盘指南针模块库文件及中英文
- hmc5883l在stm32上的应用
- STM32F103+HMC5883L
- STM32+MPU6050+HMC5883L+BMP180姿态解算程序
- HMC5883L-STM32驱动程序
- HMC5883L库文件
- Arduino HMC5883L库文件
- hmc5883l 与51单片机接线图
- HMC5883L的Arduino库
- CC2530-HMC5883L通过I2C通信
- HMC5883L 模块的源代码和电路图
- zw_HMC5883L模块资料电路图源代码.zip
- STM32F1单片机+四元数欧拉角姿态解算
- 电子罗盘HMC5883L自校准程序
- hmc5883l 电子罗盘430单片机程序
- HMC5883L模块资料电路图+源代码.zip
- stm32通过IIC读取HMC5883L来计算方向角
- 基于cc2530的HMC5883L程序 测量地磁 I2C通
- stm32模拟I2C接口操作HMC5883L实现方向角
- HMC5883L传感器STM32F4平台下C驱动代码
- 基于STM32的HMC5883L+MPU6050串口输出测试
评论
共有 条评论