资源简介

基于STM32的HMC5983驱动代码,此处使用的是spi通信,通信部分自己写。

资源截图

代码片段和文件信息

/*
*
* 1.调试开发参考hmc5983资料即可。
*
*/


#include “stdio.h“
#include “hmc5983.h“
#include “stm32_Delay.h“
#include “usb_lib.h“
#include “string.h“

#define Dummy_Byte   0x80    //虚假数据

//初始化hmc5983
void hmc5983_init(void)
{
  u8 CheckID[]=“123“;
  GPIO_InitTypeDef GPIO_InitStructure;
  spi2_init();

  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB ENABLE);

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOB &GPIO_InitStructure);

  GPIO_ResetBits(GPIOBGPIO_Pin_9);


  hmc5983_ReadBuf(HMC5983_IDA_REGCheckID3); //读取机器ID进而判断芯片是否准备ok
  if(strncmp((char*)CheckIDHMC5983_ID3)!=0)
  {
#ifdef MY_DEBUG
    printf(“Didn‘t check to HMC5983! ReadID:%s\n“CheckID);
#endif
  }
  else
  {
#ifdef MY_DEBUG
    printf(“The HMC5983 is ready!\n“);
#endif
    hmc5983_WriteByte(HMC5983_CONF_REG_A0x14);    //正常测量,1次平均 30HZ
    hmc5983_WriteByte(HMC5983_CONF_REG_B0x30);    //±2.5Ga
    hmc5983_WriteByte(HMC5983_MODE_REG  0x01);    //

评论

共有 条评论