我再用stm32cube生成SPI,想进行SPI的主机DMA发送数据。 软件配置如下: hdma_spi1_tx.Instance = DMA1_Channel3; hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE; hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE; hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; hdma_spi1_tx.Init.Mode = DMA_NORMAL; hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW; HAL_DMA_Init(&hdma_spi1_tx); 要发送的数据是: uint8_t Data1[4]={0x90,0x90,0x20,0x00}; 当按键按下后,就进行SPI的DMA发送: HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET); HAL_SPI_Transmit_DMA(&hspi1,Data1,4); 结果是发送的数据是,4个0x90,2个0x20,2个0x00 如下图,这是为什么呢 |
äºååèæ°ï½å¤è³