@ -43,8 +43,85 @@ TIM_HandleTypeDef htim_left;
ADC_HandleTypeDef hadc1 ;
ADC_HandleTypeDef hadc2 ;
I2C_HandleTypeDef hi2c2 ;
UART_HandleTypeDef huart2 ;
DMA_HandleTypeDef hdma_usart2_rx ;
DMA_HandleTypeDef hdma_usart2_tx ;
volatile adc_buf_t adc_buffer ;
# ifdef CONTROL_SERIAL_USART2
void UART_Control_Init ( ) {
GPIO_InitTypeDef GPIO_InitStruct ;
__HAL_RCC_USART2_CLK_ENABLE ( ) ;
/* DMA1_Channel6_IRQn interrupt configuration */
//HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 5, 6);
//HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn);
HAL_NVIC_SetPriority ( DMA1_Channel6_IRQn , 5 , 6 ) ;
HAL_NVIC_EnableIRQ ( DMA1_Channel6_IRQn ) ;
/* DMA1_Channel7_IRQn interrupt configuration */
HAL_NVIC_SetPriority ( DMA1_Channel7_IRQn , 5 , 7 ) ;
HAL_NVIC_EnableIRQ ( DMA1_Channel7_IRQn ) ;
huart2 . Instance = USART2 ;
huart2 . Init . BaudRate = CONTROL_BAUD ;
huart2 . Init . WordLength = UART_WORDLENGTH_8B ;
huart2 . Init . StopBits = UART_STOPBITS_1 ;
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;
HAL_UART_Init ( & huart2 ) ;
__HAL_RCC_DMA1_CLK_ENABLE ( ) ;
/* USER CODE BEGIN USART2_MspInit 0 */
__HAL_RCC_GPIOA_CLK_ENABLE ( ) ;
/* USER CODE END USART2_MspInit 0 */
/* Peripheral clock enable */
__HAL_RCC_USART2_CLK_ENABLE ( ) ;
GPIO_InitStruct . Pull = GPIO_PULLUP ; //GPIO_NOPULL;
GPIO_InitStruct . Pin = GPIO_PIN_2 ;
GPIO_InitStruct . Mode = GPIO_MODE_AF_PP ;
GPIO_InitStruct . Speed = GPIO_SPEED_FREQ_HIGH ;
HAL_GPIO_Init ( GPIOA , & GPIO_InitStruct ) ;
GPIO_InitStruct . Pin = GPIO_PIN_3 ;
GPIO_InitStruct . Mode = GPIO_MODE_INPUT ; //GPIO_MODE_AF_PP;
// GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init ( GPIOA , & GPIO_InitStruct ) ;
/* Peripheral DMA init*/
hdma_usart2_rx . Instance = DMA1_Channel6 ;
hdma_usart2_rx . Init . Direction = DMA_PERIPH_TO_MEMORY ;
hdma_usart2_rx . Init . PeriphInc = DMA_PINC_DISABLE ;
hdma_usart2_rx . Init . MemInc = DMA_MINC_ENABLE ;
hdma_usart2_rx . Init . PeriphDataAlignment = DMA_PDATAALIGN_BYTE ;
hdma_usart2_rx . Init . MemDataAlignment = DMA_MDATAALIGN_BYTE ;
hdma_usart2_rx . Init . Mode = DMA_CIRCULAR ; //DMA_NORMAL;
hdma_usart2_rx . Init . Priority = DMA_PRIORITY_LOW ;
HAL_DMA_Init ( & hdma_usart2_rx ) ;
__HAL_LINKDMA ( & huart2 , hdmarx , hdma_usart2_rx ) ;
hdma_usart2_tx . Instance = DMA1_Channel7 ;
hdma_usart2_tx . Init . Direction = DMA_MEMORY_TO_PERIPH ;
hdma_usart2_tx . Init . PeriphInc = DMA_PINC_DISABLE ;
hdma_usart2_tx . Init . MemInc = DMA_MINC_ENABLE ;
hdma_usart2_tx . Init . PeriphDataAlignment = DMA_PDATAALIGN_BYTE ;
hdma_usart2_tx . Init . MemDataAlignment = DMA_MDATAALIGN_BYTE ;
hdma_usart2_tx . Init . Mode = DMA_NORMAL ;
hdma_usart2_tx . Init . Priority = DMA_PRIORITY_LOW ;
HAL_DMA_Init ( & hdma_usart2_tx ) ;
__HAL_LINKDMA ( & huart2 , hdmatx , hdma_usart2_tx ) ;
}
# endif
# ifdef DEBUG_SERIAL_USART3
void UART_Init ( ) {
__HAL_RCC_USART3_CLK_ENABLE ( ) ;