diff options
Diffstat (limited to 'src/stm32f0/serial.c')
-rw-r--r-- | src/stm32f0/serial.c | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/src/stm32f0/serial.c b/src/stm32f0/serial.c deleted file mode 100644 index 103a0d70..00000000 --- a/src/stm32f0/serial.c +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Serial communication for STM32F042 boards. - * - * Copyright (C) 2019 Eug Krashtan <eug.krashtan@gmail.com> - * This file may be distributed under the terms of the GNU GPLv3 license. - * - */ - -#include "stm32f0xx_hal.h" -#include <string.h> -#include "autoconf.h" // CONFIG_SERIAL_BAUD -#include "board/serial_irq.h" // serial_rx_byte -#include "sched.h" // DECL_INIT - -UART_HandleTypeDef huart2; -static uint8_t rxbuf, txbuf; - -void USART2_IRQHandler(void) -{ - HAL_UART_IRQHandler(&huart2); -} - -/** - * @brief USART2 Initialization Function - * @param None - * @retval None - */ -void UartInit(void) -{ - huart2.Instance = USART2; - huart2.Init.BaudRate = CONFIG_SERIAL_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; - huart2.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; - huart2.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - HAL_UART_Init(&huart2); - - HAL_UART_Receive_IT(&huart2,&rxbuf,(uint16_t)1); -} -DECL_INIT(UartInit); - -void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) -{ - if (huart == &huart2) { - serial_rx_byte(rxbuf); - HAL_UART_Receive_IT(&huart2,&rxbuf,(uint16_t)1); - } -} - -void serial_enable_tx_irq(void) -{ - while(huart2.gState != HAL_UART_STATE_READY); - if(serial_get_tx_byte(&txbuf) == 0) { - HAL_UART_Transmit_IT(&huart2,&txbuf,(uint16_t)1); - } -} - -void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) -{ - if (huart == &huart2) - serial_enable_tx_irq(); -} - -/** -* @brief UART MSP Initialization -* @param huart: UART handle pointer -* @retval None -*/ -void HAL_UART_MspInit(UART_HandleTypeDef* huart) -{ - - GPIO_InitTypeDef GPIO_InitStruct = {0}; - if(huart->Instance==USART2) - { - /* Peripheral clock enable */ - __HAL_RCC_USART2_CLK_ENABLE(); - - __HAL_RCC_GPIOA_CLK_ENABLE(); - /**USART2 GPIO Configuration - PA2 ------> USART2_TX - PA3 ------> 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_HIGH; - GPIO_InitStruct.Alternate = GPIO_AF1_USART2; - HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - - /* USART2 interrupt Init */ - HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(USART2_IRQn); - } -} |