ICM-20608读取WHO AM I寄存器问题

2019-07-20 03:30发布

ICM-20608为一6轴传感器与mpu6000差不多只不过功耗低一些,现在想读取WHO AM I寄存区中的0x75,然后由串口发到串口助手
以下是我的代码
int main(void)
{
        uint8_t a=0xF5;//访问 WHO AM I 寄存器的第一个字节0x75|0x80
        uint8_t b=0;
//                uint8_t rxdata=0;
//                uint8_t txdata =  0x6A;
//                uint8_t buf[2]={0};
//                buf[0] = txdata;buf[1]=0x10;


  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_SPI1_Init();
  MX_UART7_Init();

  /* USER CODE BEGIN 2 */

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
       

               
                //HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2,GPIO_PIN_RESET);//CS拉低
               
    //if(HAL_SPI_Transmit(&hspi1,buf,2,500) != HAL_OK)
                        //return 0;
                //if(HAL_SPI_Receive(&hspi1,&rxdata,1,500) != HAL_OK)
                        //return 0;
               
                HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2,GPIO_PIN_SET);//CS拉高
               
                HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2,GPIO_PIN_RESET);//CS拉低
    if(HAL_SPI_Transmit(&hspi1, &a, 1, 200)!=HAL_OK)//向WHO AM I 寄存器发送第一个字节
                        return 0;
                if(HAL_SPI_Receive(&hspi1, &b, 1, 200)!=HAL_OK)//接收WHO AM I 寄存器的数据
                   return 0;
                HAL_GPIO_WritePin(GPIOC,GPIO_PIN_2,GPIO_PIN_SET);//CS拉高
               
    HAL_Delay(300);
                HAL_UART_Transmit(&huart7, &b, 1, 200);//串口发送从寄存器得到的数据
               
       

  }

  /* USER CODE END 3 */

}

请大神指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。