中级会员 
   
	- 积分
 - 358
 
        - 金钱
 - 358 
 
       - 注册时间
 - 2016-8-2
 
      - 在线时间
 - 79 小时
 
 
 
 | 
 
最近使用STM32H730驱动SPI外设芯片,芯片为EEPROM。使用单步调试的时候,程序读写数据都是对的。 
全速运行时,芯片读到的数据还是保持上一次写的数据,写失败。不知道是何原因,各位大佬帮我分析一下 
 
hspi2.Instance = SPI2; 
  hspi2.Init.Mode = SPI_MODE_MASTER; 
  hspi2.Init.Direction = SPI_DIRECTION_2LINES; 
  hspi2.Init.DataSize = SPI_DATASIZE_8BIT; 
  hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; 
  hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; 
  hspi2.Init.NSS = SPI_NSS_SOFT; 
  hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64; 
  hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; 
  hspi2.Init.TIMode = SPI_TIMODE_DISABLE; 
  hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; 
  hspi2.Init.CRCPolynomial = 0x07; 
  hspi2.Init.NSSPMode = SPI_NSS_PULSE_DISABLE; 
  hspi2.Init.NSSPolarity = SPI_NSS_POLARITY_LOW; 
  hspi2.Init.FifoThreshold = SPI_FIFO_THRESHOLD_16DATA; 
  hspi2.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; 
  hspi2.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; 
  hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_15CYCLE; 
  hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_15CYCLE; 
  hspi2.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE; 
  hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_ENABLE; 
  hspi2.Init.IOSwap = SPI_IO_SWAP_DISABLE; 
  if (HAL_SPI_Init(&hspi2) != HAL_OK) 
  { 
    Error_Handler(); 
  } 
 
 
 |   
 
 
 
 |