bma253(5599).c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "bma253.h"
  2. void i2c_chekc(uint8_t result){
  3. switch(result){
  4. case HAL_OK:
  5. printf("HAL_OK : %d \r\n",result);
  6. break;
  7. case HAL_ERROR:
  8. printf("HAL_ERROR : %d\r\n",result);
  9. break;
  10. case HAL_BUSY:
  11. printf("HAL_BUSY : %d\r\n",result);
  12. break;
  13. case HAL_TIMEOUT:
  14. printf("HAL_TIMEOUT : %d\r\n",result);
  15. break;
  16. }
  17. }
  18. int bma253_get_chip_id(void){
  19. uint8_t data,res[1]={0,};
  20. data = HAL_I2C_Mem_Read(&hi2c2, (REG_VALUE_CHIP_ID << 1), 0, 1, &res[0], I2C_MEMADD_SIZE_8BIT, 1000);
  21. i2c_chekc(data);
  22. HAL_Delay(1000);
  23. data = HAL_I2C_Mem_Read(&hi2c2, REG_VALUE_CHIP_ID , 0, 1, &res[0], I2C_MEMADD_SIZE_8BIT, 1000);
  24. i2c_chekc(data);
  25. HAL_Delay(1000);
  26. data = HAL_I2C_Mem_Read(&hi2c2, REG_ADDR_BGW_CHIPID, REG_VALUE_CHIP_ID, 1, &res[0], I2C_MEMADD_SIZE_8BIT, 1000);
  27. i2c_chekc(data);
  28. HAL_Delay(1000);
  29. data = HAL_I2C_Mem_Read(&hi2c2, REG_ADDR_BGW_CHIPID, REG_VALUE_CHIP_ID<<1, 1, &res[0], I2C_MEMADD_SIZE_8BIT, 1000);
  30. i2c_chekc(data);
  31. HAL_Delay(1000);
  32. data = HAL_I2C_Mem_Read_IT(&hi2c2, (REG_VALUE_CHIP_ID << 1), 0, 1, &res[0], I2C_MEMADD_SIZE_8BIT);
  33. i2c_chekc(data);
  34. HAL_Delay(1000);
  35. data = HAL_I2C_Mem_Read_IT(&hi2c2, REG_VALUE_CHIP_ID , 0, 1, &res[0], 1);
  36. i2c_chekc(data);
  37. HAL_Delay(1000);
  38. data = HAL_I2C_Mem_Read_IT(&hi2c2, REG_ADDR_BGW_CHIPID, REG_VALUE_CHIP_ID, 1, &res[0], I2C_MEMADD_SIZE_8BIT);
  39. i2c_chekc(data);
  40. HAL_Delay(1000);
  41. data = HAL_I2C_Mem_Read_IT(&hi2c2, REG_ADDR_BGW_CHIPID, REG_VALUE_CHIP_ID<<1, 1, &res[0], I2C_MEMADD_SIZE_8BIT);
  42. i2c_chekc(data);
  43. HAL_Delay(1000);
  44. }