|
|
@ -51,3 +51,45 @@ void H2O2ExtBoard::HADC1_INIT() { |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void H2O2ExtBoard::HUART2_INIT(int baudrate, uint32_t StopBits) { |
|
|
|
__HAL_RCC_USART2_CLK_ENABLE(); |
|
|
|
__HAL_RCC_GPIOD_CLK_ENABLE(); |
|
|
|
__HAL_RCC_GPIOA_CLK_ENABLE(); |
|
|
|
__HAL_RCC_DMA1_CLK_ENABLE(); |
|
|
|
|
|
|
|
GPIO_InitTypeDef GPIO_InitStruct = {0}; |
|
|
|
|
|
|
|
huart2.Instance = USART2; |
|
|
|
huart2.Init.BaudRate = baudrate; |
|
|
|
huart2.Init.WordLength = UART_WORDLENGTH_8B; |
|
|
|
huart2.Init.StopBits = StopBits; |
|
|
|
huart2.Init.Parity = UART_PARITY_NONE; |
|
|
|
huart2.Init.Mode = UART_MODE_TX_RX; |
|
|
|
huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; |
|
|
|
huart2.Init.OverSampling = UART_OVERSAMPLING_16; |
|
|
|
if (HAL_UART_Init(&huart2) != HAL_OK) { |
|
|
|
Error_Handler(); |
|
|
|
} |
|
|
|
/**USART2 GPIO Configuration
|
|
|
|
PD5 ------> USART2_TX |
|
|
|
PD6 ------> USART2_RX |
|
|
|
*/ |
|
|
|
GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3; |
|
|
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; |
|
|
|
GPIO_InitStruct.Pull = GPIO_NOPULL; |
|
|
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; |
|
|
|
GPIO_InitStruct.Alternate = GPIO_AF7_USART2; |
|
|
|
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); |
|
|
|
|
|
|
|
/* USART2 interrupt Init */ |
|
|
|
HAL_NVIC_SetPriority(USART2_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(USART2_IRQn); |
|
|
|
|
|
|
|
__HAL_RCC_DMA1_CLK_ENABLE(); |
|
|
|
HalUtils::uartdmainit(&huart2, &hdma1_stream5, DMA_CHANNEL_4, &hdma1_stream6, DMA_CHANNEL_4); |
|
|
|
HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn); |
|
|
|
HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 5, 0); |
|
|
|
HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn); |
|
|
|
} |