gvalin

    1. BMI088 spi读取数据一直为0xFFFF 6/7303 stm32/stm8 2019-05-15
      现在是先要读取陀螺仪的chipid,正确返回的值是0x0F,但是一直读到的是0xffff。查看波形后,mosi和sck的波形是正确的,但发现miso脚没有波形的原因? 这样的情况是不是可以确定为,硬件可能有问题?
    2. BMI088 spi读取数据一直为0xFFFF 6/7303 stm32/stm8 2019-05-15
      spi读取的代码如下: uint8_t spiSendByte(uint8_t byte) {   /* Loop while DR register in not emplty */   while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET);   /* Send byte through the SPI peripheral */   SPI_I2S_SendData(BMI088_SPI, byte);   /* Wait to receive a byte */   while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);   /* Return the byte read from the SPI bus */   return SPI_I2S_ReceiveData(BMI088_SPI); } static char spiReceiveByte() {   return spiSendByte(0xff); } int spi_burst_read(uint8_t dev_id, uint8_t reg_addr, uint8_t *reg_data, uint16_t len) {         int i;         reg_addr = (reg_addr | 0x80);   /**< Burst read code comes here */   if (dev_id == BMI088_ACCEL_I2C_ADDR_PRIMARY)   {     ACC_EN_CS();   }   else   {                 GYR_DIS_CS();     GYR_EN_CS();   }   if (len SPI1_RECEIVE_BUFFER_SIZE)   {     spiSendByte(reg_addr);     for (i = 0; i < len; i++)     {       reg_data[i] = spiReceiveByte();     }   }   else   {     spiDMATransaction(reg_addr, reg_data, len);   }   if (dev_id == BMI088_ACCEL_I2C_ADDR_PRIMARY)   {     ACC_DIS_CS();   }   else   {     GYR_DIS_CS();   }   return 0; }
    3. BMI088 spi读取数据一直为0xFFFF 6/7303 stm32/stm8 2019-05-15
      in order to allow for the correct internal synchronisation of data writen to the bmi088,a wait time of at least 2us must be followed.另外数据手册中还有这句话,不是很理解是什么意思。
    4. SPI读数异常 求指教 11/5352 stm32/stm8 2019-05-15
      方便借鉴学习一下你的代码吗?
    5. SPI读数异常 求指教 11/5352 stm32/stm8 2019-05-15
      gzc581 发表于 2019-4-16 15:47 这个问题在datasheet里面写了,是要读两次的,仅针对加速度计。楼主这个片子调通了吗?我这边用的F405RGT6, ...
      你好,你的问题解决了吗?我也遇到这个问题

最近访客

< 1/1 >

统计信息

已有3人来访过

  • 芯积分:--
  • 好友:--
  • 主题:1
  • 回复:5

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言