From 38038695217d9ed1f3929f699abe5cce0687d8f9 Mon Sep 17 00:00:00 2001 From: Alexander Kurmis Date: Wed, 19 Oct 2022 23:51:50 +0300 Subject: [PATCH] =?UTF-8?q?RS485=20UART=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BD=D0=B0=20DMA=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D1=86=D1=83=20HVD4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .mxproject | 16 ++--- Core/Inc/board_logic.h | 2 +- Core/Inc/modbus_logic.h | 2 +- Core/Inc/stm32f0xx_it.h | 1 + Core/Inc/uart.h | 13 ---- Core/Src/main.c | 21 ++++++- Core/Src/modbus_logic.c | 111 +++++++++++++++++++---------------- Core/Src/stm32f0xx_hal_msp.c | 46 ++++++++++++++- Core/Src/stm32f0xx_it.c | 19 +++++- Core/Src/uart.c | 102 -------------------------------- Relay_RS485 Debug.launch | 2 +- Relay_RS485.ioc | 56 +++++++++++++----- 12 files changed, 191 insertions(+), 200 deletions(-) delete mode 100644 Core/Inc/uart.h delete mode 100644 Core/Src/uart.c diff --git a/.mxproject b/.mxproject index d12e153..0eab613 100644 --- a/.mxproject +++ b/.mxproject @@ -9,17 +9,17 @@ CDefines=USE_HAL_DRIVER;STM32F030x6;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true HeaderFileListSize=3 -HeaderFiles#0=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Inc/stm32f0xx_it.h -HeaderFiles#1=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Inc/stm32f0xx_hal_conf.h -HeaderFiles#2=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Inc/main.h +HeaderFiles#0=..\Core\Inc\stm32f0xx_it.h +HeaderFiles#1=..\Core\Inc\stm32f0xx_hal_conf.h +HeaderFiles#2=..\Core\Inc\main.h HeaderFolderListSize=1 -HeaderPath#0=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Inc +HeaderPath#0=..\Core\Inc HeaderFiles=; SourceFileListSize=3 -SourceFiles#0=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Src/stm32f0xx_it.c -SourceFiles#1=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Src/stm32f0xx_hal_msp.c -SourceFiles#2=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Src/main.c +SourceFiles#0=..\Core\Src\stm32f0xx_it.c +SourceFiles#1=..\Core\Src\stm32f0xx_hal_msp.c +SourceFiles#2=..\Core\Src\main.c SourceFolderListSize=1 -SourcePath#0=Y:/Projects_Eagle/Ecros/RS485_Relay_V1R1/STM32/Relay_RS485/Core/Src +SourcePath#0=..\Core\Src SourceFiles=; diff --git a/Core/Inc/board_logic.h b/Core/Inc/board_logic.h index 554c073..82da4d6 100644 --- a/Core/Inc/board_logic.h +++ b/Core/Inc/board_logic.h @@ -13,6 +13,6 @@ #define REL_AUX_BIT (1u<<1) void loop_iterate(); - +void timer1_ovf_isr(void); #endif diff --git a/Core/Inc/modbus_logic.h b/Core/Inc/modbus_logic.h index 0dbc9ba..021c012 100644 --- a/Core/Inc/modbus_logic.h +++ b/Core/Inc/modbus_logic.h @@ -24,7 +24,7 @@ enum send_state {SEND_IDLE, SEND_BUSY}; void UART_RxCpltCallback(void); void UART_TxCpltCallback(void); - +void process_incoming_packet(); void modbus_loop_iterate(); uint8_t read_register(uint16_t address, uint16_t* value); uint8_t write_register(uint16_t address, uint16_t value); diff --git a/Core/Inc/stm32f0xx_it.h b/Core/Inc/stm32f0xx_it.h index e31120f..a70c270 100644 --- a/Core/Inc/stm32f0xx_it.h +++ b/Core/Inc/stm32f0xx_it.h @@ -51,6 +51,7 @@ void HardFault_Handler(void); void SVC_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); +void DMA1_Channel2_3_IRQHandler(void); void TIM1_BRK_UP_TRG_COM_IRQHandler(void); void TIM1_CC_IRQHandler(void); void USART1_IRQHandler(void); diff --git a/Core/Inc/uart.h b/Core/Inc/uart.h deleted file mode 100644 index a10831f..0000000 --- a/Core/Inc/uart.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __UART_H -#define __UART_H -#include - -#define RET_OK 0 -#define RET_OVERFLOW 1 -#define RET_TIMEOUT 2 - -uint8_t UART_Transmit_IT(uint8_t * data, uint16_t len, uint16_t timeout); -uint8_t UART_Receive_IT(uint8_t * data, uint16_t len, uint16_t timeout); -extern void UART_TxCpltCallback(void); -extern void UART_RxCpltCallback(void); -#endif diff --git a/Core/Src/main.c b/Core/Src/main.c index 2641c4d..2296704 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -47,6 +47,8 @@ TIM_HandleTypeDef htim1; TIM_HandleTypeDef htim3; UART_HandleTypeDef huart1; +DMA_HandleTypeDef hdma_usart1_rx; +DMA_HandleTypeDef hdma_usart1_tx; /* USER CODE BEGIN PV */ @@ -55,6 +57,7 @@ UART_HandleTypeDef huart1; /* Private function prototypes -----------------------------------------------*/ void SystemClock_Config(void); static void MX_GPIO_Init(void); +static void MX_DMA_Init(void); static void MX_TIM3_Init(void); static void MX_USART1_UART_Init(void); static void MX_TIM1_Init(void); @@ -95,11 +98,11 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); + MX_DMA_Init(); MX_TIM3_Init(); MX_USART1_UART_Init(); MX_TIM1_Init(); /* USER CODE BEGIN 2 */ - __HAL_UART_ENABLE_IT(&huart1, UART_IT_RXNE); // включить прерывания usart'a HAL_TIM_Base_Start_IT(&htim1); /* USER CODE END 2 */ @@ -290,6 +293,22 @@ static void MX_USART1_UART_Init(void) } +/** + * Enable DMA controller clock + */ +static void MX_DMA_Init(void) +{ + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + + /* DMA interrupt init */ + /* DMA1_Channel2_3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel2_3_IRQn, 2, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel2_3_IRQn); + +} + /** * @brief GPIO Initialization Function * @param None diff --git a/Core/Src/modbus_logic.c b/Core/Src/modbus_logic.c index 3f1c463..ef52a60 100644 --- a/Core/Src/modbus_logic.c +++ b/Core/Src/modbus_logic.c @@ -6,11 +6,13 @@ #include #include "main.h" -#include "uart.h" #include "modbus_logic.h" -volatile uint8_t recv_buffer[BUFFERS_SIZE]; -volatile uint8_t send_buffer[BUFFERS_SIZE]; +extern UART_HandleTypeDef huart1; +extern DMA_HandleTypeDef hdma_usart1_rx; + +uint8_t recv_buffer[BUFFERS_SIZE]; +uint8_t send_buffer[BUFFERS_SIZE]; uint16_t bytes_to_send = 0; uint16_t last_rx_time = 0xFFFF; @@ -19,55 +21,56 @@ enum send_state cmd_sending = SEND_IDLE; uint16_t tranfer_errors_count; extern uint16_t led_time_act; -static void process_incoming_packet(); +void process_incoming_packet(); -void UART_RxCpltCallback(void) +#define TXEN_ON HAL_GPIO_WritePin(TXEN_GPIO_Port, TXEN_Pin, GPIO_PIN_SET) +#define TXEN_OFF HAL_GPIO_WritePin(TXEN_GPIO_Port, TXEN_Pin, GPIO_PIN_RESET) + +void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size) { - uint16_t pdu_size; - uint16_t remaining_size; - if (cmd_receiving == RECV_READ_HEADER) - { - // Check destination address - if (recv_buffer[5] != BOARD_ADRESS) - { - cmd_receiving = RECV_ERROR; - return; - } - - // Check function code - if (recv_buffer[6] == 3 || recv_buffer[6] == 4 || recv_buffer[6] == 6) - { - cmd_receiving = RECV_READ_COMPLETE; - return; - } - else if (recv_buffer[6] == 0x10) - { - cmd_receiving = RECV_READ_DATA; - pdu_size = *((uint16_t*)(recv_buffer + 2)); - // Receive remaining PDU and checksum - remaining_size = pdu_size - (MODBUS_HEADER_SIZE - 4) + 2; - if (remaining_size + MODBUS_HEADER_SIZE <= BUFFERS_SIZE) - UART_Receive_IT(recv_buffer + MODBUS_HEADER_SIZE, remaining_size, 5000); + if (huart->Instance == USART1) + { + if (recv_buffer[5] != BOARD_ADRESS) + { + cmd_receiving = RECV_ERROR; + return; + } + // Check function code + if (recv_buffer[6] == 3 || recv_buffer[6] == 4 || recv_buffer[6] == 6) + { + if(Size==MODBUS_HEADER_SIZE)cmd_receiving = RECV_READ_COMPLETE; + return; + } + else if (recv_buffer[6] == 0x10) + { + uint16_t pdu_size = *((uint16_t*)(recv_buffer + 2)); + uint16_t remaining_size = pdu_size - (MODBUS_HEADER_SIZE - 4) + 2; + if (remaining_size + MODBUS_HEADER_SIZE == Size) + cmd_receiving = RECV_READ_COMPLETE; + else + { + cmd_receiving = RECV_ERROR; + tranfer_errors_count++; + } + return; + } else + { tranfer_errors_count++; - return; - } - else - { - tranfer_errors_count++; - cmd_receiving = RECV_ERROR; - return; - } - } - else if (cmd_receiving == RECV_READ_DATA) - { - cmd_receiving = RECV_READ_COMPLETE; - } + cmd_receiving = RECV_ERROR; + return; + } + } } -void UART_TxCpltCallback() +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { - cmd_sending = SEND_IDLE; + if (huart->Instance == USART1) + { + cmd_sending = SEND_IDLE; + TXEN_OFF; + } + } void modbus_loop_iterate() @@ -76,19 +79,22 @@ void modbus_loop_iterate() { if (cmd_receiving == RECV_ERROR) { - //delay_ms(30); // poor man's way to synchronize packets - if(last_rx_time>=BUS_IDLE_TIME) - { + // poor man's way to synchronize packets + //if(last_rx_time>=BUS_IDLE_TIME) + //{ cmd_receiving = RECV_IDLE; //TXEN_485 = 1; //delay_us(10); //TXEN_485 = 0; - } + //} } if (cmd_receiving == RECV_IDLE) { - cmd_receiving = RECV_READ_HEADER; - UART_Receive_IT(recv_buffer, MODBUS_HEADER_SIZE, 5000); + if(HAL_UARTEx_ReceiveToIdle_DMA(&huart1, recv_buffer, BUFFERS_SIZE)==HAL_OK) + { + cmd_receiving = RECV_READ_HEADER; + __HAL_DMA_DISABLE_IT(&hdma_usart1_rx, DMA_IT_HT); + } } else if (cmd_receiving == RECV_READ_COMPLETE) { @@ -98,7 +104,8 @@ void modbus_loop_iterate() } else if (cmd_sending == SEND_BUSY && bytes_to_send != 0) { - UART_Transmit_IT(send_buffer, bytes_to_send, 1000); + TXEN_ON; + HAL_UART_Transmit_DMA(&huart1, send_buffer, bytes_to_send); bytes_to_send = 0; } } diff --git a/Core/Src/stm32f0xx_hal_msp.c b/Core/Src/stm32f0xx_hal_msp.c index bb19b14..1858d9e 100644 --- a/Core/Src/stm32f0xx_hal_msp.c +++ b/Core/Src/stm32f0xx_hal_msp.c @@ -23,6 +23,9 @@ /* USER CODE BEGIN Includes */ /* USER CODE END Includes */ +extern DMA_HandleTypeDef hdma_usart1_rx; + +extern DMA_HandleTypeDef hdma_usart1_tx; /* Private typedef -----------------------------------------------------------*/ /* USER CODE BEGIN TD */ @@ -94,9 +97,9 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) /* Peripheral clock enable */ __HAL_RCC_TIM1_CLK_ENABLE(); /* TIM1 interrupt Init */ - HAL_NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 0, 0); + HAL_NVIC_SetPriority(TIM1_BRK_UP_TRG_COM_IRQn, 3, 0); HAL_NVIC_EnableIRQ(TIM1_BRK_UP_TRG_COM_IRQn); - HAL_NVIC_SetPriority(TIM1_CC_IRQn, 0, 0); + HAL_NVIC_SetPriority(TIM1_CC_IRQn, 3, 0); HAL_NVIC_EnableIRQ(TIM1_CC_IRQn); /* USER CODE BEGIN TIM1_MspInit 1 */ @@ -230,8 +233,41 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart) GPIO_InitStruct.Alternate = GPIO_AF1_USART1; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + /* USART1 DMA Init */ + /* USART1_RX Init */ + hdma_usart1_rx.Instance = DMA1_Channel3; + hdma_usart1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_usart1_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart1_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart1_rx.Init.Mode = DMA_NORMAL; + hdma_usart1_rx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_usart1_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(huart,hdmarx,hdma_usart1_rx); + + /* USART1_TX Init */ + hdma_usart1_tx.Instance = DMA1_Channel2; + hdma_usart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_usart1_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_usart1_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_usart1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_usart1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_usart1_tx.Init.Mode = DMA_NORMAL; + hdma_usart1_tx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(huart,hdmatx,hdma_usart1_tx); + /* USART1 interrupt Init */ - HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); + HAL_NVIC_SetPriority(USART1_IRQn, 1, 0); HAL_NVIC_EnableIRQ(USART1_IRQn); /* USER CODE BEGIN USART1_MspInit 1 */ @@ -262,6 +298,10 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) */ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); + /* USART1 DMA DeInit */ + HAL_DMA_DeInit(huart->hdmarx); + HAL_DMA_DeInit(huart->hdmatx); + /* USART1 interrupt DeInit */ HAL_NVIC_DisableIRQ(USART1_IRQn); /* USER CODE BEGIN USART1_MspDeInit 1 */ diff --git a/Core/Src/stm32f0xx_it.c b/Core/Src/stm32f0xx_it.c index 46fdf19..528f86e 100644 --- a/Core/Src/stm32f0xx_it.c +++ b/Core/Src/stm32f0xx_it.c @@ -56,6 +56,8 @@ /* External variables --------------------------------------------------------*/ extern TIM_HandleTypeDef htim1; +extern DMA_HandleTypeDef hdma_usart1_rx; +extern DMA_HandleTypeDef hdma_usart1_tx; extern UART_HandleTypeDef huart1; /* USER CODE BEGIN EV */ @@ -141,6 +143,21 @@ void SysTick_Handler(void) /* please refer to the startup file (startup_stm32f0xx.s). */ /******************************************************************************/ +/** + * @brief This function handles DMA1 channel 2 and 3 interrupts. + */ +void DMA1_Channel2_3_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel2_3_IRQn 0 */ + + /* USER CODE END DMA1_Channel2_3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart1_tx); + HAL_DMA_IRQHandler(&hdma_usart1_rx); + /* USER CODE BEGIN DMA1_Channel2_3_IRQn 1 */ + + /* USER CODE END DMA1_Channel2_3_IRQn 1 */ +} + /** * @brief This function handles TIM1 break, update, trigger and commutation interrupts. */ @@ -175,8 +192,6 @@ void TIM1_CC_IRQHandler(void) void USART1_IRQHandler(void) { /* USER CODE BEGIN USART1_IRQn 0 */ - USER_UART1_IRQHandler(&huart1); - return; /* USER CODE END USART1_IRQn 0 */ HAL_UART_IRQHandler(&huart1); diff --git a/Core/Src/uart.c b/Core/Src/uart.c deleted file mode 100644 index e8a590a..0000000 --- a/Core/Src/uart.c +++ /dev/null @@ -1,102 +0,0 @@ -#include "uart.h" -#include "main.h" -#include -#include -#include - -uint8_t * uart_tx_buf; -uint8_t uart_tx_busy=0; -uint16_t uart_tx_counter=0; -uint16_t uart_tx_len=0; - -uint8_t * uart_rx_buf; -uint8_t uart_rx_busy=0; -uint16_t uart_rx_counter=0; -uint16_t uart_rx_len=0; -extern uint16_t last_rx_time; - -extern UART_HandleTypeDef huart1; - -#define TXEN_ON HAL_GPIO_WritePin(TXEN_GPIO_Port, TXEN_Pin, GPIO_PIN_SET) -#define TXEN_OFF HAL_GPIO_WritePin(TXEN_GPIO_Port, TXEN_Pin, GPIO_PIN_RESET) - -void USER_UART1_IRQHandler(UART_HandleTypeDef *huart) -{ - uint8_t data; - - if((huart1.Instance->ISR & USART_ISR_RXNE) != RESET) - { - last_rx_time = 0; - data = (uint8_t)(huart1.Instance->RDR & (uint8_t)0x00FF); // читает байт из регистра - if(uart_rx_busy) - { - uart_rx_buf[uart_rx_counter]=data; - if(++uart_rx_counter == uart_rx_len) - { - uart_rx_busy = 0; - UART_RxCpltCallback(); - } - } - - } - - if((uart_tx_busy)&&((huart1.Instance->ISR & USART_ISR_TC) != RESET)) - { - if(++uart_tx_counter == uart_tx_len) - { - TXEN_OFF; - uart_tx_busy = 0; - UART_TxCpltCallback(); - __HAL_UART_DISABLE_IT(&huart1, UART_IT_TC); - } - else - //putchar(uart_tx_buf[uart_tx_counter]); - huart->Instance->TDR=uart_tx_buf[uart_tx_counter]; - } - huart->Instance->ICR=0xFFFFFFFF; -} - -uint8_t UART_Receive_IT(uint8_t * data, uint16_t len, uint16_t timeout) -{ - uint16_t i; - - //if(len>UART_RX_LEN)return RET_OVERFLOW; - for(i=0;iTDR=uart_tx_buf[0]; - //putchar(uart_tx_buf[0]); - __HAL_UART_ENABLE_IT(&huart1, UART_IT_TC); - return RET_OK; -} diff --git a/Relay_RS485 Debug.launch b/Relay_RS485 Debug.launch index 3cf8a3a..6b77827 100644 --- a/Relay_RS485 Debug.launch +++ b/Relay_RS485 Debug.launch @@ -38,7 +38,7 @@ - + diff --git a/Relay_RS485.ioc b/Relay_RS485.ioc index bf06dc7..190dce7 100644 --- a/Relay_RS485.ioc +++ b/Relay_RS485.ioc @@ -1,15 +1,38 @@ #MicroXplorer Configuration settings - do not modify +Dma.Request0=USART1_RX +Dma.Request1=USART1_TX +Dma.RequestsNb=2 +Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY +Dma.USART1_RX.0.Instance=DMA1_Channel3 +Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART1_RX.0.MemInc=DMA_MINC_ENABLE +Dma.USART1_RX.0.Mode=DMA_NORMAL +Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE +Dma.USART1_RX.0.Priority=DMA_PRIORITY_LOW +Dma.USART1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority +Dma.USART1_TX.1.Direction=DMA_MEMORY_TO_PERIPH +Dma.USART1_TX.1.Instance=DMA1_Channel2 +Dma.USART1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE +Dma.USART1_TX.1.Mode=DMA_NORMAL +Dma.USART1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE +Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW +Dma.USART1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority File.Version=6 GPIO.groupedBy= KeepUserPlacement=false +Mcu.CPN=STM32F030K6T6 Mcu.Family=STM32F0 -Mcu.IP0=NVIC -Mcu.IP1=RCC -Mcu.IP2=SYS -Mcu.IP3=TIM1 -Mcu.IP4=TIM3 -Mcu.IP5=USART1 -Mcu.IPNb=6 +Mcu.IP0=DMA +Mcu.IP1=NVIC +Mcu.IP2=RCC +Mcu.IP3=SYS +Mcu.IP4=TIM1 +Mcu.IP5=TIM3 +Mcu.IP6=USART1 +Mcu.IPNb=7 Mcu.Name=STM32F030K6Tx Mcu.Package=LQFP32 Mcu.Pin0=PF0-OSC_IN @@ -34,15 +57,16 @@ Mcu.UserConstants= Mcu.UserName=STM32F030K6Tx MxCube.Version=6.4.0 MxDb.Version=DB.6.0.40 +NVIC.DMA1_Channel2_3_IRQn=true\:2\:0\:true\:false\:true\:false\:true\:true NVIC.ForceEnableDMAVector=true -NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false -NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false -NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false -NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false -NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true -NVIC.TIM1_BRK_UP_TRG_COM_IRQn=true\:0\:0\:false\:false\:true\:true\:true -NVIC.TIM1_CC_IRQn=true\:0\:0\:false\:false\:true\:true\:true -NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:false +NVIC.TIM1_BRK_UP_TRG_COM_IRQn=true\:3\:0\:true\:false\:true\:true\:true\:true +NVIC.TIM1_CC_IRQn=true\:3\:0\:true\:false\:true\:true\:true\:true +NVIC.USART1_IRQn=true\:1\:0\:true\:false\:true\:true\:true\:true PA10.Locked=true PA10.Mode=Asynchronous PA10.Signal=USART1_RX @@ -115,7 +139,7 @@ ProjectManager.StackSize=0x400 ProjectManager.TargetToolchain=STM32CubeIDE ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_TIM3_Init-TIM3-false-HAL-true,4-MX_USART1_UART_Init-USART1-false-HAL-true,5-MX_TIM1_Init-TIM1-false-HAL-true +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM3_Init-TIM3-false-HAL-true,5-MX_USART1_UART_Init-USART1-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true RCC.AHBFreq_Value=48000000 RCC.APB1Freq_Value=48000000 RCC.APB1TimFreq_Value=48000000