コード例 #1
0
ファイル: Vs1003b.c プロジェクト: beartan/q-sys
// 写寄存器
// 参数:  寄存器地址,待写数据的高8位,待写数据的低8位 
void VsWriteReg(u8 addr,u16 data)
{
	SPI_SetSpeed(SPI1,0);//低速 
	VS_XDCS_SET(1);       //xDCS = 1
	VS_CS_SET(0);       //xCS = 0
	VS_Write_Byte(VS_WRITE_COMMAND); //发送写寄存器命令
	VS_Write_Byte(addr);      //发送寄存器的地址
	VS_Write_Byte(data>>8);         //发送待写数据的高8位
	VS_Write_Byte(data&0xff);          //发送待写数据的低8位
	VS_CS_SET(1);       //xCS = 1
	SPI_SetSpeed(SPI1,1);//高速
}
コード例 #2
0
ファイル: Vs1003b.c プロジェクト: beartan/q-sys
//读寄存器
u16 VsReadReg(u8 addr)
{
	u16 res= 0;

	SPI_SetSpeed(SPI1,0);//低速 
	VS_XDCS_SET(1);       //xDCS =1
	VS_CS_SET(0);       //xCS = 0
	VS_Write_Byte(VS_READ_COMMAND); //发送读寄存器命令
	VS_Write_Byte(addr);//发送寄存器的地址
	res = (u16 )(VS_Read_Byte() << 8);//读取高8位数据
	res |= VS_Read_Byte();  //读取低8位数据
	VS_CS_SET(1);       //xCS = 1        
	SPI_SetSpeed(SPI1,1);//高速
	return res;                 //返回16位寄存器的值
}
コード例 #3
0
ファイル: imu.c プロジェクト: Hom-Wang/SmartIMU
/**
 *  @brief  IMU_Init
 */
uint32_t IMU_Init( void )
{
#if defined(__MPU9250_H)
  if (MPU92_Init() != KS_OK) {
    return KS_ERROR;
  }
#endif

#if defined(__LPS22HB_H)
  if (LPS22_Init() != KS_OK) {
    return KS_ERROR;
  }
#endif

  SPI_SetSpeed(hImu.handle, IMU_SPIx_SPEED_HIGH);
  delay_ms(10);

  return KS_OK;
}