converted files to cpp
This commit is contained in:
@ -2,55 +2,84 @@
|
||||
#include <cstdio>
|
||||
|
||||
SPI_HandleTypeDef* spiHandle = nullptr;
|
||||
DMA_HandleTypeDef* hdma_tx = nullptr;
|
||||
DMA_HandleTypeDef* hdma_rx = nullptr;
|
||||
DMA_HandleTypeDef* hdmaTx = nullptr;
|
||||
DMA_HandleTypeDef* hdmaRx = nullptr;
|
||||
|
||||
msp_func_t msp_init_func = nullptr;
|
||||
void* msp_init_args = nullptr;
|
||||
msp_func_t mspInitFunc = nullptr;
|
||||
void* mspInitArgs = nullptr;
|
||||
|
||||
msp_func_t msp_deinit_func = nullptr;
|
||||
void* msp_deinit_args = nullptr;
|
||||
msp_func_t mspDeinitFunc = nullptr;
|
||||
void* mspDeinitArgs = nullptr;
|
||||
|
||||
void set_dma_handles(DMA_HandleTypeDef* txHandle, DMA_HandleTypeDef* rxHandle) {
|
||||
hdma_tx = txHandle;
|
||||
hdma_rx = rxHandle;
|
||||
spi_transfer_cb_t rxTxCb = nullptr;
|
||||
void* rxTxArgs = nullptr;
|
||||
spi_transfer_cb_t txCb = nullptr;
|
||||
void* txArgs = nullptr;
|
||||
spi_transfer_cb_t rxCb = nullptr;
|
||||
void* rxArgs = nullptr;
|
||||
spi_transfer_cb_t errorCb = nullptr;
|
||||
void* errorArgs = nullptr;
|
||||
|
||||
void spi::setDmaHandles(DMA_HandleTypeDef* txHandle, DMA_HandleTypeDef* rxHandle) {
|
||||
hdmaTx = txHandle;
|
||||
hdmaRx = rxHandle;
|
||||
}
|
||||
|
||||
void get_dma_handles(DMA_HandleTypeDef** txHandle, DMA_HandleTypeDef** rxHandle) {
|
||||
*txHandle = hdma_tx;
|
||||
*rxHandle = hdma_rx;
|
||||
void spi::getDmaHandles(DMA_HandleTypeDef** txHandle, DMA_HandleTypeDef** rxHandle) {
|
||||
*txHandle = hdmaTx;
|
||||
*rxHandle = hdmaRx;
|
||||
}
|
||||
|
||||
void assign_spi_handle(SPI_HandleTypeDef *spiHandle_) {
|
||||
void spi::setSpiHandle(SPI_HandleTypeDef *spiHandle_) {
|
||||
if(spiHandle_ == NULL) {
|
||||
return;
|
||||
}
|
||||
spiHandle = spiHandle_;
|
||||
}
|
||||
|
||||
SPI_HandleTypeDef* get_spi_handle() {
|
||||
void spi::assignTransferRxTxCompleteCallback(spi_transfer_cb_t callback, void *userArgs) {
|
||||
rxTxCb = callback;
|
||||
rxTxArgs = userArgs;
|
||||
}
|
||||
|
||||
void spi::assignTransferRxCompleteCallback(spi_transfer_cb_t callback, void *userArgs) {
|
||||
rxCb = callback;
|
||||
rxArgs = userArgs;
|
||||
}
|
||||
|
||||
void spi::assignTransferTxCompleteCallback(spi_transfer_cb_t callback, void *userArgs) {
|
||||
txCb = callback;
|
||||
txArgs = userArgs;
|
||||
}
|
||||
|
||||
void spi::assignTransferErrorCallback(spi_transfer_cb_t callback, void *userArgs) {
|
||||
errorCb = callback;
|
||||
errorArgs = userArgs;
|
||||
}
|
||||
|
||||
SPI_HandleTypeDef* spi::getSpiHandle() {
|
||||
return spiHandle;
|
||||
}
|
||||
|
||||
void set_spi_msp_functions(msp_func_t init_func, void* init_args, msp_func_t deinit_func,
|
||||
void spi::setSpiMspFunctions(msp_func_t init_func, void* init_args, msp_func_t deinit_func,
|
||||
void* deinit_args) {
|
||||
msp_init_func = init_func;
|
||||
msp_init_args = init_args;
|
||||
msp_deinit_func = deinit_func;
|
||||
msp_deinit_args = deinit_args;
|
||||
mspInitFunc = init_func;
|
||||
mspInitArgs = init_args;
|
||||
mspDeinitFunc = deinit_func;
|
||||
mspDeinitArgs = deinit_args;
|
||||
}
|
||||
|
||||
void get_msp_init_function(msp_func_t* init_func, void **args) {
|
||||
void spi::getMspInitFunction(msp_func_t* init_func, void **args) {
|
||||
if(init_func != NULL && args != NULL) {
|
||||
*init_func = msp_init_func;
|
||||
*args = msp_init_args;
|
||||
*init_func = mspInitFunc;
|
||||
*args = mspInitArgs;
|
||||
}
|
||||
}
|
||||
|
||||
void get_msp_deinit_function(msp_func_t* deinit_func, void **args) {
|
||||
void spi::getMspDeinitFunction(msp_func_t* deinit_func, void **args) {
|
||||
if(deinit_func != NULL && args != NULL) {
|
||||
*deinit_func = msp_deinit_func;
|
||||
*args = msp_deinit_args;
|
||||
*deinit_func = mspDeinitFunc;
|
||||
*args = mspDeinitArgs;
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,8 +94,8 @@ void get_msp_deinit_function(msp_func_t* deinit_func, void **args) {
|
||||
* @retval None
|
||||
*/
|
||||
extern "C" void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) {
|
||||
if(msp_init_func != NULL) {
|
||||
msp_init_func(msp_init_args);
|
||||
if(mspInitFunc != NULL) {
|
||||
mspInitFunc(mspInitArgs);
|
||||
}
|
||||
else {
|
||||
printf("HAL_SPI_MspInit: Please call set_msp_functions to assign SPI MSP functions\n");
|
||||
@ -82,10 +111,66 @@ extern "C" void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi) {
|
||||
* @retval None
|
||||
*/
|
||||
extern "C" void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi) {
|
||||
if(msp_deinit_func != NULL) {
|
||||
msp_deinit_func(msp_deinit_args);
|
||||
if(mspDeinitFunc != NULL) {
|
||||
mspDeinitFunc(mspDeinitArgs);
|
||||
}
|
||||
else {
|
||||
printf("HAL_SPI_MspDeInit: Please call set_msp_functions to assign SPI MSP functions\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TxRx Transfer completed callback.
|
||||
* @param hspi: SPI handle
|
||||
*/
|
||||
extern "C" void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) {
|
||||
if(rxTxCb != NULL) {
|
||||
rxTxCb(hspi, rxTxArgs);
|
||||
}
|
||||
else {
|
||||
printf("HAL_SPI_TxRxCpltCallback: No user callback specified\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TxRx Transfer completed callback.
|
||||
* @param hspi: SPI handle
|
||||
*/
|
||||
extern "C" void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) {
|
||||
if(txCb != NULL) {
|
||||
txCb(hspi, txArgs);
|
||||
}
|
||||
else {
|
||||
printf("HAL_SPI_TxCpltCallback: No user callback specified\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief TxRx Transfer completed callback.
|
||||
* @param hspi: SPI handle
|
||||
*/
|
||||
extern "C" void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi) {
|
||||
if(rxCb != nullptr) {
|
||||
rxCb(hspi, rxArgs);
|
||||
}
|
||||
else {
|
||||
printf("HAL_SPI_RxCpltCallback: No user callback specified\n");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SPI error callbacks.
|
||||
* @param hspi: SPI handle
|
||||
* @note This example shows a simple way to report transfer error, and you can
|
||||
* add your own implementation.
|
||||
* @retval None
|
||||
*/
|
||||
extern "C" void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi) {
|
||||
if(errorCb != nullptr) {
|
||||
errorCb(hspi, rxArgs);
|
||||
}
|
||||
else {
|
||||
printf("HAL_SPI_ErrorCallback: No user callback specified\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user