进一步迭代优化统一管理
This commit is contained in:
@ -15,42 +15,54 @@
|
||||
* @brief Initialize SPI hardware
|
||||
* @param instance SPI instance identifier
|
||||
* @param config SPI configuration structure
|
||||
* @return true if initialization is successful, false otherwise
|
||||
* @retval HAL status code
|
||||
*/
|
||||
bool hal_spi_init(hal_spi_instance_t instance, const hal_spi_config_t *config) {
|
||||
hal_ret_t hal_spi_init(hal_spi_instance_t instance, const hal_spi_config_t *config) {
|
||||
if (config == NULL) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
if (instance >= HAL_SPI_INSTANCE_MAX) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
/* Call architecture specific SPI initialization */
|
||||
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F1
|
||||
return hal_stm32f1_spi_init(instance, config);
|
||||
return hal_stm32f1_spi_init(instance, config) ? HAL_RET_OK : HAL_RET_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||
return hal_stm32f4_spi_init(instance, config);
|
||||
return hal_stm32f4_spi_init(instance, config) ? HAL_RET_OK : HAL_RET_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F7
|
||||
return hal_stm32f7_spi_init(instance, config);
|
||||
return hal_stm32f7_spi_init(instance, config) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32L4
|
||||
return hal_stm32l4_spi_init(instance, config);
|
||||
return hal_stm32l4_spi_init(instance, config) ? HAL_OK : HAL_ERROR;
|
||||
#else
|
||||
#error "Unsupported HAL architecture"
|
||||
return false;
|
||||
return HAL_RET_ERROR;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Deinitialize SPI hardware
|
||||
* @param instance SPI instance identifier
|
||||
* @return true if deinitialization is successful, false otherwise
|
||||
* @retval HAL status code
|
||||
*/
|
||||
bool hal_spi_deinit(hal_spi_instance_t instance) {
|
||||
hal_ret_t hal_spi_deinit(hal_spi_instance_t instance) {
|
||||
if (instance >= HAL_SPI_INSTANCE_MAX) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
/* Call architecture specific SPI deinitialization */
|
||||
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F1
|
||||
return hal_stm32f1_spi_deinit(instance);
|
||||
return hal_stm32f1_spi_deinit(instance) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||
return hal_stm32f4_spi_deinit(instance);
|
||||
return hal_stm32f4_spi_deinit(instance) ? HAL_RET_OK : HAL_RET_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F7
|
||||
return hal_stm32f7_spi_deinit(instance);
|
||||
return hal_stm32f7_spi_deinit(instance) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32L4
|
||||
return hal_stm32l4_spi_deinit(instance);
|
||||
return hal_stm32l4_spi_deinit(instance) ? HAL_OK : HAL_ERROR;
|
||||
#else
|
||||
#error "Unsupported HAL architecture"
|
||||
return false;
|
||||
return HAL_RET_ERROR;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -59,21 +71,29 @@ bool hal_spi_deinit(hal_spi_instance_t instance) {
|
||||
* @param instance SPI instance identifier
|
||||
* @param p_data Pointer to data buffer to transmit
|
||||
* @param size Size of data to transmit
|
||||
* @return true if transmission is successful, false otherwise
|
||||
* @retval HAL status code
|
||||
*/
|
||||
bool hal_spi_transmit(hal_spi_instance_t instance, const uint8_t *p_data, uint16_t size) {
|
||||
hal_ret_t hal_spi_transmit(hal_spi_instance_t instance, const uint8_t *p_data, uint16_t size) {
|
||||
if (p_data == NULL || size == 0) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
if (instance >= HAL_SPI_INSTANCE_MAX) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
/* Call architecture specific SPI transmit implementation */
|
||||
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F1
|
||||
return hal_stm32f1_spi_transmit(instance, p_data, size);
|
||||
return hal_stm32f1_spi_transmit(instance, p_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||
return hal_stm32f4_spi_transmit(instance, p_data, size);
|
||||
return hal_stm32f4_spi_transmit(instance, p_data, size) ? HAL_RET_OK : HAL_RET_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F7
|
||||
return hal_stm32f7_spi_transmit(instance, p_data, size);
|
||||
return hal_stm32f7_spi_transmit(instance, p_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32L4
|
||||
return hal_stm32l4_spi_transmit(instance, p_data, size);
|
||||
return hal_stm32l4_spi_transmit(instance, p_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#else
|
||||
#error "Unsupported HAL architecture"
|
||||
return false;
|
||||
return HAL_RET_ERROR;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -82,21 +102,29 @@ bool hal_spi_transmit(hal_spi_instance_t instance, const uint8_t *p_data, uint16
|
||||
* @param instance SPI instance identifier
|
||||
* @param p_data Pointer to data buffer to receive
|
||||
* @param size Size of data to receive
|
||||
* @return true if reception is successful, false otherwise
|
||||
* @retval HAL status code
|
||||
*/
|
||||
bool hal_spi_receive(hal_spi_instance_t instance, uint8_t *p_data, uint16_t size) {
|
||||
hal_ret_t hal_spi_receive(hal_spi_instance_t instance, uint8_t *p_data, uint16_t size) {
|
||||
if (p_data == NULL || size == 0) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
if (instance >= HAL_SPI_INSTANCE_MAX) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
/* Call architecture specific SPI receive implementation */
|
||||
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F1
|
||||
return hal_stm32f1_spi_receive(instance, p_data, size);
|
||||
return hal_stm32f1_spi_receive(instance, p_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||
return hal_stm32f4_spi_receive(instance, p_data, size);
|
||||
return hal_stm32f4_spi_receive(instance, p_data, size) ? HAL_RET_OK : HAL_RET_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F7
|
||||
return hal_stm32f7_spi_receive(instance, p_data, size);
|
||||
return hal_stm32f7_spi_receive(instance, p_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32L4
|
||||
return hal_stm32l4_spi_receive(instance, p_data, size);
|
||||
return hal_stm32l4_spi_receive(instance, p_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#else
|
||||
#error "Unsupported HAL architecture"
|
||||
return false;
|
||||
return HAL_RET_ERROR;
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -106,20 +134,28 @@ bool hal_spi_receive(hal_spi_instance_t instance, uint8_t *p_data, uint16_t size
|
||||
* @param p_tx_data Pointer to data buffer to transmit
|
||||
* @param p_rx_data Pointer to data buffer to receive
|
||||
* @param size Size of data to transmit/receive
|
||||
* @return true if transmission and reception are successful, false otherwise
|
||||
* @retval HAL status code
|
||||
*/
|
||||
bool hal_spi_transmit_receive(hal_spi_instance_t instance, const uint8_t *p_tx_data, uint8_t *p_rx_data, uint16_t size) {
|
||||
hal_ret_t hal_spi_transmit_receive(hal_spi_instance_t instance, const uint8_t *p_tx_data, uint8_t *p_rx_data, uint16_t size) {
|
||||
if (p_tx_data == NULL || p_rx_data == NULL || size == 0) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
if (instance >= HAL_SPI_INSTANCE_MAX) {
|
||||
return HAL_RET_INVALID_PARAM;
|
||||
}
|
||||
|
||||
/* Call architecture specific SPI transmit and receive implementation */
|
||||
#if HAL_TARGET_ARCH == HAL_ARCH_STM32F1
|
||||
return hal_stm32f1_spi_transmit_receive(instance, p_tx_data, p_rx_data, size);
|
||||
return hal_stm32f1_spi_transmit_receive(instance, p_tx_data, p_rx_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F4
|
||||
return hal_stm32f4_spi_transmit_receive(instance, p_tx_data, p_rx_data, size);
|
||||
return hal_stm32f4_spi_transmit_receive(instance, p_tx_data, p_rx_data, size) ? HAL_RET_OK : HAL_RET_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32F7
|
||||
return hal_stm32f7_spi_transmit_receive(instance, p_tx_data, p_rx_data, size);
|
||||
return hal_stm32f7_spi_transmit_receive(instance, p_tx_data, p_rx_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#elif HAL_TARGET_ARCH == HAL_ARCH_STM32L4
|
||||
return hal_stm32l4_spi_transmit_receive(instance, p_tx_data, p_rx_data, size);
|
||||
return hal_stm32l4_spi_transmit_receive(instance, p_tx_data, p_rx_data, size) ? HAL_OK : HAL_ERROR;
|
||||
#else
|
||||
#error "Unsupported HAL architecture"
|
||||
return false;
|
||||
return HAL_RET_ERROR;
|
||||
#endif
|
||||
}
|
||||
Reference in New Issue
Block a user