feat: 增加IMU初始化时重新上电功能

This commit is contained in:
bmy
2024-04-16 09:49:38 +08:00
parent a9b0fe1a18
commit c5edd57aa8
2 changed files with 11 additions and 3 deletions

View File

@@ -223,14 +223,21 @@ void imu660ra_get_temperature(void)
uint8 imu660ra_init(void)
{
uint8 return_state = 0;
// 先给 IMU660RA 断电重启
gpio_init(IMU660RA_PE_PIN, GPO, 0, GPO_PUSH_PULL); // 配置 IMU660RA 的 PE 端口
gpio_low(IMU660RA_PE_PIN);
system_delay_ms(100);
gpio_high(IMU660RA_PE_PIN);
system_delay_ms(20); // 等待设备上电成功
#if IMU660RA_USE_SOFT_IIC
soft_iic_init(&imu660ra_iic_struct, IMU660RA_DEV_ADDR, IMU660RA_SOFT_IIC_DELAY, IMU660RA_SCL_PIN, IMU660RA_SDA_PIN); // 配置 IMU660RA 的 IIC 端口
#else
spi_init(IMU660RA_SPI, SPI_MODE0, IMU660RA_SPI_SPEED, IMU660RA_SPC_PIN, IMU660RA_SDI_PIN, IMU660RA_SDO_PIN, IMU660RA_CS_PIN); // 配置 IMU660RA 的 SPI 端口
gpio_init(IMU660RA_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL); // 配置 IMU660RA 的 CS 端口
imu660ra_read_register(IMU660RA_CHIP_ID); // 读取一下设备 ID 将设备设置为 SPI 模式
gpio_init(IMU660RA_CS_PIN, GPO, GPIO_HIGH, GPO_PUSH_PULL); // 配置 IMU660RA 的 CS 端口
imu660ra_read_register(IMU660RA_CHIP_ID); // 读取一下设备 ID 将设备设置为 SPI 模式
#endif
do {
if (imu660ra_self_check()) // IMU660RA 自检