refactored spi code
This commit is contained in:
parent
72aa8fec69
commit
55218227bb
@ -36,13 +36,13 @@
|
|||||||
#define SPIx_RX_DMA_REQUEST DMA_REQUEST_SPI1_RX
|
#define SPIx_RX_DMA_REQUEST DMA_REQUEST_SPI1_RX
|
||||||
|
|
||||||
/* Definition for SPIx's NVIC */
|
/* Definition for SPIx's NVIC */
|
||||||
#define SPIx_DMA_TX_IRQn DMA2_Stream3_IRQn
|
|
||||||
#define SPIx_DMA_RX_IRQn DMA2_Stream2_IRQn
|
#define SPIx_DMA_RX_IRQn DMA2_Stream2_IRQn
|
||||||
|
#define SPIx_DMA_TX_IRQn DMA2_Stream3_IRQn
|
||||||
|
|
||||||
#define SPIx_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler
|
|
||||||
#define SPIx_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler
|
#define SPIx_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler
|
||||||
|
#define SPIx_DMA_TX_IRQHandler DMA2_Stream3_IRQHandler
|
||||||
|
|
||||||
#define SPIx_IRQn SPI1_IRQn
|
#define SPIx_IRQn SPI1_IRQn
|
||||||
#define SPIx_IRQHandler SPIx_IRQHandler
|
#define SPIx_IRQHandler SPI1_IRQHandler
|
||||||
|
|
||||||
#endif /* FSFW_HAL_STM32H7_DEVICETEST_SPICONF_H_ */
|
#endif /* FSFW_HAL_STM32H7_DEVICETEST_SPICONF_H_ */
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
#include "spiConf.h"
|
#include "spiConf.h"
|
||||||
|
|
||||||
#include "fsfw_hal/stm32h7/spi/spiCore.h"
|
#include "fsfw_hal/stm32h7/spi/spiCore.h"
|
||||||
|
#include "fsfw_hal/stm32h7/dma_interrupts.h"
|
||||||
|
#include "fsfw_hal/stm32h7/spi/interrupts.h"
|
||||||
|
|
||||||
#include "stm32h743xx.h"
|
#include "stm32h743xx.h"
|
||||||
#include "stm32h7xx_hal_spi.h"
|
#include "stm32h7xx_hal_spi.h"
|
||||||
@ -9,6 +11,9 @@
|
|||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void dma_rx_irq_handler(void* dma_handle);
|
||||||
|
void dma_tx_irq_handler(void* dma_handle);
|
||||||
|
void spi1_irq_handler(void* spi_handle);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief SPI MSP Initialization
|
* @brief SPI MSP Initialization
|
||||||
@ -110,16 +115,22 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)
|
|||||||
__HAL_LINKDMA(hspi, hdmarx, *hdma_rx);
|
__HAL_LINKDMA(hspi, hdmarx, *hdma_rx);
|
||||||
|
|
||||||
/*##-4- Configure the NVIC for DMA #########################################*/
|
/*##-4- Configure the NVIC for DMA #########################################*/
|
||||||
/* NVIC configuration for DMA transfer complete interrupt (SPI1_TX) */
|
|
||||||
HAL_NVIC_SetPriority(SPIx_DMA_TX_IRQn, 1, 1);
|
|
||||||
HAL_NVIC_EnableIRQ(SPIx_DMA_TX_IRQn);
|
|
||||||
|
|
||||||
/* NVIC configuration for DMA transfer complete interrupt (SPI1_RX) */
|
/* NVIC configuration for DMA transfer complete interrupt (SPI1_RX) */
|
||||||
|
// Assign the interrupt handler
|
||||||
|
assign_dma_user_handler(DMA_2, 2, &dma_rx_irq_handler, hdma_rx);
|
||||||
HAL_NVIC_SetPriority(SPIx_DMA_RX_IRQn, 1, 0);
|
HAL_NVIC_SetPriority(SPIx_DMA_RX_IRQn, 1, 0);
|
||||||
HAL_NVIC_EnableIRQ(SPIx_DMA_RX_IRQn);
|
HAL_NVIC_EnableIRQ(SPIx_DMA_RX_IRQn);
|
||||||
|
|
||||||
|
/* NVIC configuration for DMA transfer complete interrupt (SPI1_TX) */
|
||||||
|
// Assign the interrupt handler
|
||||||
|
assign_dma_user_handler(DMA_2, 3, &dma_tx_irq_handler, hdma_tx);
|
||||||
|
HAL_NVIC_SetPriority(SPIx_DMA_TX_IRQn, 1, 1);
|
||||||
|
HAL_NVIC_EnableIRQ(SPIx_DMA_TX_IRQn);
|
||||||
|
|
||||||
/*##-5- Configure the NVIC for SPI #########################################*/
|
/*##-5- Configure the NVIC for SPI #########################################*/
|
||||||
/* NVIC configuration for SPI transfer complete interrupt (SPI1) */
|
/* NVIC configuration for SPI transfer complete interrupt (SPI1) */
|
||||||
|
// Assign the interrupt handler
|
||||||
|
assign_spi_user_handler(SPI_1, &spi1_irq_handler, hspi);
|
||||||
HAL_NVIC_SetPriority(SPIx_IRQn, 1, 0);
|
HAL_NVIC_SetPriority(SPIx_IRQn, 1, 0);
|
||||||
HAL_NVIC_EnableIRQ(SPIx_IRQn);
|
HAL_NVIC_EnableIRQ(SPIx_IRQn);
|
||||||
}
|
}
|
||||||
@ -137,8 +148,6 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi)
|
|||||||
{
|
{
|
||||||
if(hspi->Instance == SPIx)
|
if(hspi->Instance == SPIx)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/*##-1- Reset peripherals ##################################################*/
|
/*##-1- Reset peripherals ##################################################*/
|
||||||
SPIx_FORCE_RESET();
|
SPIx_FORCE_RESET();
|
||||||
SPIx_RELEASE_RESET();
|
SPIx_RELEASE_RESET();
|
||||||
@ -173,33 +182,3 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi)
|
|||||||
HAL_NVIC_EnableIRQ(SPIx_IRQn);
|
HAL_NVIC_EnableIRQ(SPIx_IRQn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
///**
|
|
||||||
// * @brief This function handles DMA Rx interrupt request.
|
|
||||||
// * @param None
|
|
||||||
// * @retval None
|
|
||||||
// */
|
|
||||||
//void SPIx_DMA_RX_IRQHandler(void)
|
|
||||||
//{
|
|
||||||
// HAL_DMA_IRQHandler(getSpiHandle()->hdmarx);
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * @brief This function handles DMA Tx interrupt request.
|
|
||||||
// * @param None
|
|
||||||
// * @retval None
|
|
||||||
// */
|
|
||||||
//void SPIx_DMA_TX_IRQHandler(void)
|
|
||||||
//{
|
|
||||||
// HAL_DMA_IRQHandler(getSpiHandle()->hdmatx);
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * @brief This function handles SPIx interrupt request.
|
|
||||||
// * @param None
|
|
||||||
// * @retval None
|
|
||||||
// */
|
|
||||||
//void SPIx_IRQHandler(void)
|
|
||||||
//{
|
|
||||||
// HAL_SPI_IRQHandler(getSpiHandle());
|
|
||||||
//}
|
|
||||||
|
2
fsfw_hal
2
fsfw_hal
@ -1 +1 @@
|
|||||||
Subproject commit 78a66e1b677ae0daa532db222ecdd0097c01399a
|
Subproject commit abe62d807a887d5d44df7245639f211425af15d6
|
@ -33,7 +33,7 @@
|
|||||||
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
|
<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="3333"/>
|
||||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
|
||||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="false"/>
|
||||||
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="false"/>
|
<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
|
||||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
|
||||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsFileName" value=""/>
|
||||||
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
|
<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.symbolsOffset" value=""/>
|
||||||
|
Reference in New Issue
Block a user