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 */
}
请大神指点
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我验证了一下,
我的MPU-6050可以收到115=0x73。
我的MPU-6050收到了104=0x68。
你的ICM-20608其他功能都好用吗?总线上的其他SPI设备好用吗?
一周热门 更多>