1 | HAL_DMA_MuxSyncConfigTypeDef pSyncConfig;
|
2 |
|
3 | __HAL_RCC_DMA1_CLK_ENABLE();
|
4 |
|
5 | hdma_spi1_rx.Instance = DMA1_Stream0;
|
6 | hdma_spi1_rx.Init.Request = DMA_REQUEST_SPI1_RX;
|
7 | hdma_spi1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY;
|
8 | hdma_spi1_rx.Init.PeriphInc = DMA_PINC_DISABLE;
|
9 | hdma_spi1_rx.Init.MemInc = DMA_MINC_ENABLE;
|
10 | hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
11 | hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
12 | hdma_spi1_rx.Init.Mode = DMA_NORMAL;
|
13 | hdma_spi1_rx.Init.Priority = DMA_PRIORITY_LOW;
|
14 | hdma_spi1_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
15 | if (HAL_DMA_Init(&hdma_spi1_rx) != HAL_OK)
|
16 | {
|
17 | Error_Handler();
|
18 | }
|
19 |
|
20 | pSyncConfig.SyncSignalID = HAL_DMAMUX1_SYNC_EXTI0;
|
21 | pSyncConfig.SyncPolarity = HAL_DMAMUX_SYNC_NO_EVENT;
|
22 | pSyncConfig.SyncEnable = DISABLE;
|
23 | pSyncConfig.EventEnable = ENABLE;
|
24 | pSyncConfig.RequestNumber = 1;
|
25 | if (HAL_DMAEx_ConfigMuxSync(&hdma_spi1_rx, &pSyncConfig) != HAL_OK)
|
26 | {
|
27 | Error_Handler();
|
28 | }
|
29 |
|
30 | __HAL_LINKDMA(&spi_handle,hdmarx,hdma_spi1_rx);
|
31 |
|
32 | /* SPI1_TX Init */
|
33 | hdma_spi1_tx.Instance = DMA1_Stream1;
|
34 | hdma_spi1_tx.Init.Request = DMA_REQUEST_SPI1_TX;
|
35 | hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
|
36 | hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
|
37 | hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE;
|
38 | hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
|
39 | hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
|
40 | hdma_spi1_tx.Init.Mode = DMA_NORMAL;
|
41 | hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW;
|
42 | hdma_spi1_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;
|
43 | if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK)
|
44 | {
|
45 | Error_Handler();
|
46 | }
|
47 |
|
48 | pSyncConfig.SyncSignalID = HAL_DMAMUX1_SYNC_EXTI0;
|
49 | pSyncConfig.SyncPolarity = HAL_DMAMUX_SYNC_NO_EVENT;
|
50 | pSyncConfig.SyncEnable = DISABLE;
|
51 | pSyncConfig.EventEnable = ENABLE;
|
52 | pSyncConfig.RequestNumber = 1;
|
53 | if (HAL_DMAEx_ConfigMuxSync(&hdma_spi1_tx, &pSyncConfig) != HAL_OK)
|
54 | {
|
55 | Error_Handler();
|
56 | }
|
57 |
|
58 | __HAL_LINKDMA(&spi_handle,hdmatx,hdma_spi1_tx);
|
59 |
|
60 | /* DMA interrupt init */
|
61 | /* DMA1_Stream0_IRQn interrupt configuration */
|
62 | HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);
|
63 | HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
|
64 | /* DMA1_Stream1_IRQn interrupt configuration */
|
65 | HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 0, 0);
|
66 | HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn);
|
67 | /* DMAMUX1_OVR_IRQn interrupt configuration */
|
68 | HAL_NVIC_SetPriority(DMAMUX1_OVR_IRQn, 0, 0);
|
69 | HAL_NVIC_EnableIRQ(DMAMUX1_OVR_IRQn);
|