generated from Template/H563ZI-HAL-CMake-Template
新增BLE接收,DMA空闲中断
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
#include "stm32h5xx_it.h"
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "headfile.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@@ -55,6 +56,10 @@
|
||||
/* USER CODE END 0 */
|
||||
|
||||
/* External variables --------------------------------------------------------*/
|
||||
extern DMA_NodeTypeDef Node_GPDMA1_Channel5;
|
||||
extern DMA_QListTypeDef List_GPDMA1_Channel5;
|
||||
extern DMA_HandleTypeDef handle_GPDMA1_Channel5;
|
||||
extern DMA_HandleTypeDef handle_GPDMA1_Channel4;
|
||||
extern UART_HandleTypeDef huart1;
|
||||
extern TIM_HandleTypeDef htim1;
|
||||
|
||||
@@ -160,6 +165,34 @@ void DebugMon_Handler(void)
|
||||
/* please refer to the startup file (startup_stm32h5xx.s). */
|
||||
/******************************************************************************/
|
||||
|
||||
/**
|
||||
* @brief This function handles GPDMA1 Channel 4 global interrupt.
|
||||
*/
|
||||
void GPDMA1_Channel4_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN GPDMA1_Channel4_IRQn 0 */
|
||||
|
||||
/* USER CODE END GPDMA1_Channel4_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&handle_GPDMA1_Channel4);
|
||||
/* USER CODE BEGIN GPDMA1_Channel4_IRQn 1 */
|
||||
|
||||
/* USER CODE END GPDMA1_Channel4_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles GPDMA1 Channel 5 global interrupt.
|
||||
*/
|
||||
void GPDMA1_Channel5_IRQHandler(void)
|
||||
{
|
||||
/* USER CODE BEGIN GPDMA1_Channel5_IRQn 0 */
|
||||
|
||||
/* USER CODE END GPDMA1_Channel5_IRQn 0 */
|
||||
HAL_DMA_IRQHandler(&handle_GPDMA1_Channel5);
|
||||
/* USER CODE BEGIN GPDMA1_Channel5_IRQn 1 */
|
||||
|
||||
/* USER CODE END GPDMA1_Channel5_IRQn 1 */
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief This function handles TIM1 Update interrupt.
|
||||
*/
|
||||
@@ -184,7 +217,21 @@ void USART1_IRQHandler(void)
|
||||
/* USER CODE END USART1_IRQn 0 */
|
||||
HAL_UART_IRQHandler(&huart1);
|
||||
/* USER CODE BEGIN USART1_IRQn 1 */
|
||||
|
||||
if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE))
|
||||
{
|
||||
__HAL_UART_CLEAR_IDLEFLAG(&huart1);
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
uint16_t len = UART_DMA_RX_BUF_SIZE - __HAL_DMA_GET_COUNTER(huart1.hdmarx);
|
||||
|
||||
for(uint16_t i = 0;i < len; i++)
|
||||
{
|
||||
ble_rx_ring.buffer[ble_rx_ring.head] = uart_dma_rx_buf[i];
|
||||
ble_rx_ring.head = (ble_rx_ring.head + 1) %RING_BUFFER_SIZE;
|
||||
}
|
||||
|
||||
HAL_UART_AbortReceive(&huart1); //ֹͣ<CDA3><D6B9>ǰDMA
|
||||
HCBle_InitDMAReception();
|
||||
}
|
||||
/* USER CODE END USART1_IRQn 1 */
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user