标题: 为什么用F429调试进入SPI_I2S_SendData和SPI_I2S_ReceiveData,keil软件就直接崩溃了 [打印本页]

作者: qwe2156349    时间: 2021-6-2 10:50
标题: 为什么用F429调试进入SPI_I2S_SendData和SPI_I2S_ReceiveData,keil软件就直接崩溃了
为什么用F429调试进入SPI_I2S_SendData和SPI_I2S_ReceiveData,keil软件就直接崩溃了,板子是自己做的,用开发板没有这个问题,有遇到过的大佬吗?  uint8_t ICM42605_SendByte(uint8_t byte)
{         SPITimeout = SPIT_FLAG_TIMEOUT;         
/* 等待发送缓存区为空 */        
         while(SPI_I2S_GetFlagStatus(SPI4,SPI_I2S_FLAG_TXE ) == RESET)      
        {                if((SPITimeout--)==0) return SPI_TIMEOUT_UserCallback(0);                 }        
        SPI_I2S_SendData(SPI4,byte);               
       SPITimeout = SPIT_FLAG_TIMEOUT;        
/* 等待接收缓存区为空 */         
       while(SPI_I2S_GetFlagStatus(SPI4,SPI_I2S_FLAG_RXNE) == RESET)      
      {              if((SPITimeout--)==0) return SPI_TIMEOUT_UserCallback(1);                }      
   /* 读取数据寄存器,获取接收缓冲区数据 */      
       return SPI_I2S_ReceiveData(SPI4);                }


作者: gracture    时间: 2021-6-2 11:46
程序跑飞了吗。
作者: gracture    时间: 2021-6-2 11:48
程序跑飞了吗,跑飞了,考虑溢出问题,具体可以查看数组的操作。
作者: qwe2156349    时间: 2021-6-2 17:36
gracture 发表于 2021-6-2 11:48
程序跑飞了吗,跑飞了,考虑溢出问题,具体可以查看数组的操作。

调试刚进入这里就崩溃了,这个库函数自带的函数
void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data)
{
  /* Check the parameters */
  assert_param(IS_SPI_ALL_PERIPH_EXT(SPIx));
  
  /* Write in the DR register the data to be sent */
  SPIx->DR = Data;
}

作者: yabiyff    时间: 2021-6-3 11:58
话说调试单步执行的时候定时器时钟是不是独立的?




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1