资源简介
自己按照官方文档编写的HMC5883L驱动程序代码,亲测好使!
代码片段和文件信息
/*******************************************************************************
HMC5883L + ADXL345 + BMP085 驱动函数
注意初始化PB6、PB7接口,配置RCC GPIO NVIC
*******************************************************************************/
#include “stm32f10x.h“
#include “HMC5883L.h“
#include “printf.h“
#include //Keil library
#define uchar unsigned char
#define uint unsigned int
#define OSS 0 // BMP085使用
#define HMC5883L_Addr 0x3C //器件地址
//#define HMC5883L_Addr_read 0x3d //器件地址
#define ADXL345_Addr 0xA6 //器件地址
#define BMP085_Addr 0xee //器件地址写
//#define BMP085_Addr_read 0xef //器件地址读
unsigned char BUF[8]; //接收数据缓存区
char test=0;
int xy;
float angle;
u8 geshibaiqianwanshiwan; //显示变量
int A_XA_YA_Z;
//***BMP085使用
short ac1=408;
short ac2=-72;
short ac3=-14383;
unsigned short ac4=32741;
unsigned short ac5=32757;
unsigned short ac6=23153;
short b1=6190;
short b2=4;
short mb=32768;
short mc=-8711;
short md=2868;
long temperature;
long pressure;
//********
//************************************++++++++++++++++++++++++++++++++
/*模拟IIC端口输出输入定义*/
#define SCL_H GPIOB->BSRR = GPIO_Pin_6
#define SCL_L GPIOB->BRR = GPIO_Pin_6
#define SDA_H GPIOB->BSRR = GPIO_Pin_7
#define SDA_L GPIOB->BRR = GPIO_Pin_7
#define SCL_read GPIOB->IDR & GPIO_Pin_6
#define SDA_read GPIOB->IDR & GPIO_Pin_7
void module_init(void)
{
I2C_GPIO_Config();
Init_HMC5883L();
Init_ADXL345();
Init_BMP085();
}
void conversion(long temp_data)
{
shiwan=temp_data/100000+0x30 ;
temp_data=temp_data%100000; //取余运算
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;
}
/*******************************************************************************
* Function Name : I2C_GPIO_Config
* Description : Configration Simulation IIC GPIO
* Input : None
* Output : None
* Return : None
****************************************************************************** */
void I2C_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOB &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD;
GPIO_Init(GPIOB &GPIO_InitStructure);
}
/*******************************************************************************
* Function Name : I2C_delay
* Description : Simulation IIC Timing series delay
- 上一篇:redis 性能测试
- 下一篇:高斯和概率假设密度滤波gmphd算法实现程序
相关资源
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- mpu6050+hmc5883L.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
- SX1280.rar
- STM32 DS3231驱动.zip
- STM32F103C8T6+NRF24l01无线通信
- 21天学会嵌入式开发STM32.zip
评论
共有 条评论