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

发布者:zhihua最新更新时间:2021-11-22 来源: eefocus 手机看文章 扫描二维码
随时随地手机看文章

一、指南针型号

1.1 GY-273 QMC5883L电子指南针罗盘模块 三轴磁场传感器

在这里插入图片描述

1.2 模块线的连接


注意:

1)这个模块使用时,焊在板子上才好,不要用杜邦线接,会不灵敏。

2)调试时候,可以杜邦线用一下。

image.png

image.png

二、程序开发


程序链接:

最新版:点击 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 rn",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

引用地址:GY-273 三轴电子指南针STM32F1x开发

上一篇:WFLY 2.4G 遥控器接收机 STM32F1x开发
下一篇:Nokia_5110显示屏STM32F103x开发

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved