前言:硬件IIC 基础功能
#define LIS2MDL_ADDR_WRITE 0x3C
#define LIS2MDL_ADDR_READ 0x3D
#define LIS2MDL_CFG_A 0x60 //idle DM1,DM0为00
#define LIS2MDL_CFG_B 0x61
#define LIS2MDL_CFG_C 0x62
#define LIS2MDL_REG_WHO_AM_I 0x4F
LIS2MDL读写
//写
static int LIS2MDL_Write(uint8_t IIC_Reg,uint8_t dat)
{
HAL_I2C_Mem_Write(&hi2c1,LIS2MDL_ADDR_WRITE,IIC_Reg,I2C_MEMADD_SIZE_8BIT,&dat,1,1000);
return 0;
}
//读
static int LIS2MDL_Read(uint8_t IIC_Reg)
{
uint8_t temp=0;
HAL_I2C_Mem_Read(&hi2c1,LIS2MDL_ADDR_READ ,IIC_Reg,I2C_MEMADD_SIZE_8BIT,&temp,1,1000);
return temp;
}
LIS2MDL初始化
//Startup sequence
void LIS2MDL_Init(void)
{
LIS2MDL_Write(LIS2MDL_CFG_A,0x80);
LIS2MDL_Write(LIS2MDL_CFG_C,0x10);
}
test
int Get_WHO_AM_I_LIS2MDL(void)
{
return LIS2MDL_Read(LIS2MDL_REG_WHO_AM_I);
}
逻辑分析仪查看