ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 апреля
984267 Топик полностью
Aleksey_75 (07.03.2020 02:09, просмотров: 349) ответил SciFi на Вот:
ээээ... Какой Вы веселый !!  
 SPI_DEV_DMA_TX->CCR &= ~DMA_CCR1_EN;

 // для эксперименту ставлю здесь 
 if ((SPI_DEV_DMA_TX->CCR & ~DMA_CCR1_EN) != 0)
 {
     while(true); // и ставлю здесь брекпоинт! и нихуа никогда сюда не попадаю!
 }

 if ((data.size > 0) && (data.buf != NULL))
 {
  SPI_DMA->IFCR = 0xFFFF;
  SPI_DEV_DMA_RX->CMAR = (uint32_t)data.buf;
  SPI_DEV_DMA_RX->CNDTR = data.size;
  SPI_DEV_DMA_TX->CMAR = (uint32_t)data.buf;
  SPI_DEV_DMA_TX->CNDTR =
 data.size;
  SPI_DEV_DMA_TX->CCR |= DMA_CCR1_EN;
  SPI_DEV_DMA_RX->CCR |= DMA_CCR1_EN;


более того !

if ((data.size > 0) && (data.buf != NULL))


никаким образом не относится к spi , это лишь проверка есть ли данные в пакете кроме команды