资讯详情

GY-273 三轴电子指南针STM32F1x开发

一、指南针型号 1.1 GY-273 QMC5883L电子指南针罗盘模块 三轴磁场传感器 在这里插入图片描述

GY-273连接单片机
VCC 5V
GND GND
SCL PA 11
SDA PA 12
DRDY 不接
串口调试模块
5V 5V
TXD PA10
RXD PA9
GND GND
ST-LINK
SWCLK 左-左-上-下-5-5- 个针
SWDIO 左-左-上-下-4 个针
GND 缺口靠左-右排-上至下-最后1个针
3.3v 缺口靠左-右-上-下-第二 个针

二、程序开发

程序链接:

最新版本:点击 3—GY273.zip,去我资源 库里面找 吧。

这个版本修改了上一个版本的问题,最新的个人测试。

上一版(stm32f10x 电子指南针GY-273.zip),做个参考吧!

2.1 main 函数

#include "stm32f10x.h" #include "usart.h"  #include "delay.h" #include "sys.h" #include "GY273.h"  extern double gy273_data; extern void gy273_work(void);   int main(void) { 
              delay_init();       //延迟函数初始化   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2抢占优先级,2响应优先级  uart_init(9600);   Init_HMC5883();      //GY273 初始化   while(1){ 
              gy273_work();   printf("gy273_data is %f \r\n",gy273_data); } } 

2.2 .h文件

#ifndef GY273_H
#define GY273_H
#include "sys.h"
#include "delay.h"

// 第一部分:IIC通信 的协议驱动函数 
//IO方向设置
#define SDA_IN() {GPIOA->CRH&=0XFFF0FFFF;GPIOA->CRH|=8<<16;}
#define SDA_OUT() {GPIOA->CRH&=0XFFF0FFFF;GPIOA->CRH|=3<<16;}

//IO操作函数 
#define IIC_SCL PAout(11) //SCL
#define IIC_SDA PAout(12) //SDA 
#define READ_SDA PAin(12) //输入SDA 
// 第二部分:GY273 的设置函数

#define uchar unsigned char
#define uint unsigned int 

#define SlaveAddress 0x3C //定义器件5883在IIC总线中的从地址
typedef unsigned char BYTE;
typedef unsigned short WORD;




// 第一部分:IIC通信 的协议驱动函数
//IIC所有操作函数
void IIC_Init(void);                //初始化IIC的IO口 
void IIC_Start(void);				//发送IIC开始信号
void IIC_Stop(void);	  			//发送IIC停止信号
void IIC_Send_Byte(u8 txd);			//IIC发送一个字节
u8 IIC_Read_Byte(unsigned char ack);//IIC读取一个字节
u8 IIC_Wait_Ack(void); 				//IIC等待ACK信号
void IIC_Ack(void);					//IIC发送ACK信号
void IIC_NAck(void);				//IIC不发送ACK信号

void IIC_Write_One_Byte(u8 daddr,u8 addr,u8 data);
u8 IIC_Read_One_Byte(u8 daddr,u8 addr);	  
// 第二部分:GY273 的设置函数
void  Multi_read_HMC5883(void);                 //连续读出HMC5883内部角度数据,地址范围0x3~0x5
void  Single_Write_HMC5883(uchar REG_Address,uchar REG_data);   //单个写入数据
//uchar Single_Read_HMC5883(uchar REG_Address); //单个读取内部寄存器数据
void Init_HMC5883(void);            //初始化5883
void conversion(uint temp_data);
void gy273_work(void);

#endif

标签: 271m三轴磁场传感器模块gy

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台