diff --git a/CAR.ioc b/CAR.ioc index 5fc9f6f..235c601 100644 --- a/CAR.ioc +++ b/CAR.ioc @@ -2,37 +2,17 @@ CAD.formats= CAD.pinconfig= CAD.provider= -Dma.Request0=USART1_TX -Dma.Request1=USART2_RX -Dma.Request2=USART2_TX -Dma.RequestsNb=3 -Dma.USART1_TX.0.Direction=DMA_MEMORY_TO_PERIPH -Dma.USART1_TX.0.Instance=DMA1_Channel4 -Dma.USART1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE -Dma.USART1_TX.0.MemInc=DMA_MINC_ENABLE -Dma.USART1_TX.0.Mode=DMA_NORMAL -Dma.USART1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE -Dma.USART1_TX.0.PeriphInc=DMA_PINC_DISABLE -Dma.USART1_TX.0.Priority=DMA_PRIORITY_MEDIUM -Dma.USART1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority -Dma.USART2_RX.1.Direction=DMA_PERIPH_TO_MEMORY -Dma.USART2_RX.1.Instance=DMA1_Channel6 -Dma.USART2_RX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE -Dma.USART2_RX.1.MemInc=DMA_MINC_ENABLE -Dma.USART2_RX.1.Mode=DMA_CIRCULAR -Dma.USART2_RX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE -Dma.USART2_RX.1.PeriphInc=DMA_PINC_DISABLE -Dma.USART2_RX.1.Priority=DMA_PRIORITY_VERY_HIGH -Dma.USART2_RX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority -Dma.USART2_TX.2.Direction=DMA_MEMORY_TO_PERIPH -Dma.USART2_TX.2.Instance=DMA1_Channel7 -Dma.USART2_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE -Dma.USART2_TX.2.MemInc=DMA_MINC_ENABLE -Dma.USART2_TX.2.Mode=DMA_NORMAL -Dma.USART2_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE -Dma.USART2_TX.2.PeriphInc=DMA_PINC_DISABLE -Dma.USART2_TX.2.Priority=DMA_PRIORITY_HIGH -Dma.USART2_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority +Dma.Request0=USART2_RX +Dma.RequestsNb=1 +Dma.USART2_RX.0.Direction=DMA_PERIPH_TO_MEMORY +Dma.USART2_RX.0.Instance=DMA1_Channel6 +Dma.USART2_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.USART2_RX.0.MemInc=DMA_MINC_ENABLE +Dma.USART2_RX.0.Mode=DMA_NORMAL +Dma.USART2_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.USART2_RX.0.PeriphInc=DMA_PINC_DISABLE +Dma.USART2_RX.0.Priority=DMA_PRIORITY_HIGH +Dma.USART2_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority File.Version=6 GPIO.groupedBy=Group By Peripherals KeepUserPlacement=false @@ -85,8 +65,7 @@ Mcu.UserName=STM32F103C8Tx MxCube.Version=6.12.0 MxDb.Version=DB.6.0.120 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false -NVIC.DMA1_Channel4_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true -NVIC.DMA1_Channel7_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.DMA1_Channel6_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.EXTI15_10_IRQn=true\:1\:0\:true\:false\:true\:true\:true\:true NVIC.ForceEnableDMAVector=false @@ -98,6 +77,7 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_2 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.SysTick_IRQn=true\:3\:0\:true\:false\:true\:false\:true\:false NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.USART2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false PA0-WKUP.GPIOParameters=PinState,GPIO_Label @@ -249,7 +229,7 @@ SH.S_TIM4_CH2.ConfNb=1 TIM2.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE TIM2.IPParameters=Prescaler,Period,AutoReloadPreload TIM2.Period=72 - 1 -TIM2.Prescaler=0 +TIM2.Prescaler=10 - 1 TIM3.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 TIM3.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3 TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4 diff --git a/Core/Inc/stm32f1xx_it.h b/Core/Inc/stm32f1xx_it.h index 8af00e3..63af3ef 100644 --- a/Core/Inc/stm32f1xx_it.h +++ b/Core/Inc/stm32f1xx_it.h @@ -55,9 +55,9 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); -void DMA1_Channel4_IRQHandler(void); -void DMA1_Channel7_IRQHandler(void); +void DMA1_Channel6_IRQHandler(void); void TIM2_IRQHandler(void); +void USART1_IRQHandler(void); void USART2_IRQHandler(void); void EXTI15_10_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Src/dma.c b/Core/Src/dma.c index 9a0d356..68f9784 100644 --- a/Core/Src/dma.c +++ b/Core/Src/dma.c @@ -43,12 +43,9 @@ void MX_DMA_Init(void) __HAL_RCC_DMA1_CLK_ENABLE(); /* DMA interrupt init */ - /* DMA1_Channel4_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel4_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel4_IRQn); - /* DMA1_Channel7_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel7_IRQn, 0, 0); - HAL_NVIC_EnableIRQ(DMA1_Channel7_IRQn); + /* DMA1_Channel6_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel6_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel6_IRQn); } diff --git a/Core/Src/stm32f1xx_it.c b/Core/Src/stm32f1xx_it.c index 5c9a20c..3c0d409 100644 --- a/Core/Src/stm32f1xx_it.c +++ b/Core/Src/stm32f1xx_it.c @@ -56,8 +56,8 @@ /* External variables --------------------------------------------------------*/ extern TIM_HandleTypeDef htim2; -extern DMA_HandleTypeDef hdma_usart1_tx; -extern DMA_HandleTypeDef hdma_usart2_tx; +extern DMA_HandleTypeDef hdma_usart2_rx; +extern UART_HandleTypeDef huart1; extern UART_HandleTypeDef huart2; /* USER CODE BEGIN EV */ @@ -202,31 +202,17 @@ void SysTick_Handler(void) /******************************************************************************/ /** - * @brief This function handles DMA1 channel4 global interrupt. + * @brief This function handles DMA1 channel6 global interrupt. */ -void DMA1_Channel4_IRQHandler(void) +void DMA1_Channel6_IRQHandler(void) { - /* USER CODE BEGIN DMA1_Channel4_IRQn 0 */ + /* USER CODE BEGIN DMA1_Channel6_IRQn 0 */ - /* USER CODE END DMA1_Channel4_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_usart1_tx); - /* USER CODE BEGIN DMA1_Channel4_IRQn 1 */ + /* USER CODE END DMA1_Channel6_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_usart2_rx); + /* USER CODE BEGIN DMA1_Channel6_IRQn 1 */ - /* USER CODE END DMA1_Channel4_IRQn 1 */ -} - -/** - * @brief This function handles DMA1 channel7 global interrupt. - */ -void DMA1_Channel7_IRQHandler(void) -{ - /* USER CODE BEGIN DMA1_Channel7_IRQn 0 */ - - /* USER CODE END DMA1_Channel7_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_usart2_tx); - /* USER CODE BEGIN DMA1_Channel7_IRQn 1 */ - - /* USER CODE END DMA1_Channel7_IRQn 1 */ + /* USER CODE END DMA1_Channel6_IRQn 1 */ } /** @@ -243,6 +229,20 @@ void TIM2_IRQHandler(void) /* USER CODE END TIM2_IRQn 1 */ } +/** + * @brief This function handles USART1 global interrupt. + */ +void USART1_IRQHandler(void) +{ + /* USER CODE BEGIN USART1_IRQn 0 */ + + /* USER CODE END USART1_IRQn 0 */ + HAL_UART_IRQHandler(&huart1); + /* USER CODE BEGIN USART1_IRQn 1 */ + + /* USER CODE END USART1_IRQn 1 */ +} + /** * @brief This function handles USART2 global interrupt. */ diff --git a/Core/Src/tim.c b/Core/Src/tim.c index 8761c77..ec3e6eb 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -43,7 +43,7 @@ void MX_TIM2_Init(void) /* USER CODE END TIM2_Init 1 */ htim2.Instance = TIM2; - htim2.Init.Prescaler = 0; + htim2.Init.Prescaler = 10 - 1; htim2.Init.CounterMode = TIM_COUNTERMODE_UP; htim2.Init.Period = 72 - 1; htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; diff --git a/Core/Src/usart.c b/Core/Src/usart.c index 08bfc8d..a3f577c 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -26,9 +26,7 @@ UART_HandleTypeDef huart1; UART_HandleTypeDef huart2; -DMA_HandleTypeDef hdma_usart1_tx; DMA_HandleTypeDef hdma_usart2_rx; -DMA_HandleTypeDef hdma_usart2_tx; /* USART1 init function */ @@ -116,23 +114,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); - /* USART1 DMA Init */ - /* USART1_TX Init */ - hdma_usart1_tx.Instance = DMA1_Channel4; - 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_MEDIUM; - if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(uartHandle,hdmatx,hdma_usart1_tx); - + /* USART1 interrupt Init */ + HAL_NVIC_SetPriority(USART1_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USART1_IRQn); /* USER CODE BEGIN USART1_MspInit 1 */ /* USER CODE END USART1_MspInit 1 */ @@ -168,8 +152,8 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) 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; - hdma_usart2_rx.Init.Priority = DMA_PRIORITY_VERY_HIGH; + hdma_usart2_rx.Init.Mode = DMA_NORMAL; + hdma_usart2_rx.Init.Priority = DMA_PRIORITY_HIGH; if (HAL_DMA_Init(&hdma_usart2_rx) != HAL_OK) { Error_Handler(); @@ -177,22 +161,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) __HAL_LINKDMA(uartHandle,hdmarx,hdma_usart2_rx); - /* USART2_TX Init */ - 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_HIGH; - if (HAL_DMA_Init(&hdma_usart2_tx) != HAL_OK) - { - Error_Handler(); - } - - __HAL_LINKDMA(uartHandle,hdmatx,hdma_usart2_tx); - /* USART2 interrupt Init */ HAL_NVIC_SetPriority(USART2_IRQn, 0, 0); HAL_NVIC_EnableIRQ(USART2_IRQn); @@ -219,8 +187,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) */ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); - /* USART1 DMA DeInit */ - HAL_DMA_DeInit(uartHandle->hdmatx); + /* USART1 interrupt Deinit */ + HAL_NVIC_DisableIRQ(USART1_IRQn); /* USER CODE BEGIN USART1_MspDeInit 1 */ /* USER CODE END USART1_MspDeInit 1 */ @@ -241,7 +209,6 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) /* USART2 DMA DeInit */ HAL_DMA_DeInit(uartHandle->hdmarx); - HAL_DMA_DeInit(uartHandle->hdmatx); /* USART2 interrupt Deinit */ HAL_NVIC_DisableIRQ(USART2_IRQn); diff --git a/MDK-ARM/CAR.uvoptx b/MDK-ARM/CAR.uvoptx index 4b4454e..e22b541 100644 --- a/MDK-ARM/CAR.uvoptx +++ b/MDK-ARM/CAR.uvoptx @@ -1,4 +1,4 @@ - + 1.0 @@ -45,7 +45,7 @@ 79 66 8 - + 1 @@ -78,6 +78,33 @@ 1 18 + + + 0 + Quick Start Guide (MCBSTM32E) + E:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Boards\Keil\MCBSTM32E\Documentation\STM32E_QSG.pdf + + + 1 + Base Board Schematics (MCBSTM32E) + E:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Boards\Keil\MCBSTM32E\Documentation\mcbstm32e-base-board-schematics.pdf + + + 2 + Display Board Schematics (MCBSTM32E) + E:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Boards\Keil\MCBSTM32E\Documentation\mcbstm32e-display-board-schematics.pdf + + + 3 + User Manual (MCBSTM32E) + E:\Keil_v5\ARM\PACK\Keil\STM32F1xx_DFP\2.2.0\Boards\Keil\MCBSTM32E\Documentation\mcbstm32e.chm + + + 4 + MCBSTM32E Evaluation Board Web Page (MCBSTM32E) + http://www.keil.com/mcbstm32e/ + + 0 1 @@ -100,20 +127,17 @@ 1 0 0 - 1 - 0 - 0 - 3 - - - - - - - - - - + 2 + + + + + + + + + + BIN\CMSIS_AGDI.dll @@ -130,7 +154,7 @@ 0 ARMDBGFLAGS - + 0 @@ -140,7 +164,7 @@ 0 DLGUARM - + 0 @@ -157,36 +181,88 @@ 0 0 - 98 + 39 1 -
0
+
134225148
0 0 0 0 0 - 0 - ../Core/Src/main.c - - + 1 + ..\Core\Src\hcsr04.c + + \\car\../Core/Src/hcsr04.c\39
1 0 - 31 + 98 1 -
0
+
134229854
0 0 0 0 0 - 0 - ..\Core\Src\motor.c - - + 1 + ../Core/Src/main.c + + \\car\../Core/Src/main.c\98 +
+ + 2 + 0 + 45 + 1 +
134220846
+ 0 + 0 + 0 + 0 + 0 + 1 + ..\Core\Src\hcsr04.c + + \\car\../Core/Src/hcsr04.c\45 +
+ + 3 + 0 + 32 + 1 +
134229764
+ 0 + 0 + 0 + 0 + 0 + 1 + ..\Core\Src\hcsr04.c + + \\car\../Core/Src/hcsr04.c\32
+ + + 0 + 1 + time + + + 1 + 1 + distance + + + + + 1 + 0 + &rxSize + 0 + + 0 @@ -216,22 +292,14 @@ 0 0 - - + + 0 - 0 - 0 - - - - - - - - + + + 0 1 - 0 0 2 10000000 @@ -356,6 +424,18 @@ 0 0 0 + ../Core/Src/dma.c + dma.c + 0 + 0 + + + 2 + 10 + 1 + 0 + 0 + 0 ../Core/Src/i2c.c i2c.c 0 @@ -363,7 +443,7 @@ 2 - 10 + 11 1 0 0 @@ -375,7 +455,7 @@ 2 - 11 + 12 1 0 0 @@ -387,7 +467,7 @@ 2 - 12 + 13 1 0 0 @@ -399,7 +479,7 @@ 2 - 13 + 14 1 0 0 @@ -419,7 +499,7 @@ 0 3 - 14 + 15 1 0 0 @@ -431,7 +511,7 @@ 3 - 15 + 16 1 0 0 @@ -443,7 +523,7 @@ 3 - 16 + 17 1 0 0 @@ -455,7 +535,7 @@ 3 - 17 + 18 1 0 0 @@ -467,7 +547,7 @@ 3 - 18 + 19 1 0 0 @@ -479,7 +559,7 @@ 3 - 19 + 20 1 0 0 @@ -491,7 +571,7 @@ 3 - 20 + 21 1 0 0 @@ -503,7 +583,7 @@ 3 - 21 + 22 1 0 0 @@ -515,7 +595,7 @@ 3 - 22 + 23 1 0 0 @@ -527,7 +607,7 @@ 3 - 23 + 24 1 0 0 @@ -539,7 +619,7 @@ 3 - 24 + 25 1 0 0 @@ -551,7 +631,7 @@ 3 - 25 + 26 1 0 0 @@ -563,7 +643,7 @@ 3 - 26 + 27 1 0 0 @@ -575,7 +655,7 @@ 3 - 27 + 28 1 0 0 @@ -587,7 +667,7 @@ 3 - 28 + 29 1 0 0 @@ -607,7 +687,7 @@ 0 4 - 29 + 30 1 0 0 diff --git a/MDK-ARM/CAR.uvprojx b/MDK-ARM/CAR.uvprojx index 9aa9efa..89f9cf0 100644 --- a/MDK-ARM/CAR.uvprojx +++ b/MDK-ARM/CAR.uvprojx @@ -1,43 +1,45 @@ - - + + + 2.1 +
### uVision Project, (C) Keil Software
+ CAR 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::.\ARMCC - 0 + 5060300::V5.06 update 3 (build 300)::ARMCC STM32F103C8 STMicroelectronics - Keil.STM32F1xx_DFP.2.4.1 - https://www.keil.com/pack/ + Keil.STM32F1xx_DFP.2.2.0 + http://www.keil.com/pack/ IRAM(0x20000000-0x20004FFF) IROM(0x8000000-0x800FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") TZ - - - + + + 0 - - - - - - - - - - + + + + + + + + + + $$Device:STM32F103C8$SVD\STM32F103xx.svd 0 0 - - - - - + + + + + 0 0 @@ -52,15 +54,15 @@ 1 1 1 - + 1 0 0 0 0 - - + + 0 0 0 @@ -69,8 +71,8 @@ 0 0 - - + + 0 0 0 @@ -79,15 +81,15 @@ 0 1 - - + + 0 0 0 0 1 - + 0 @@ -101,8 +103,8 @@ 0 0 3 - - + + 0 @@ -111,7 +113,7 @@ DCM.DLL -pCM3 SARMCM3.DLL - + TCM.DLL -pCM3 @@ -136,10 +138,10 @@ 1 BIN\UL2V8M.DLL "" () - - - - + + + + 0 @@ -172,7 +174,7 @@ 0 0 "Cortex-M3" - + 0 0 0 @@ -181,8 +183,6 @@ 0 0 0 - 0 - 0 0 0 8 @@ -306,7 +306,7 @@ 0x0 - + 1 @@ -323,7 +323,6 @@ 0 0 1 - 0 0 5 3 @@ -333,9 +332,9 @@ 0 0 - + USE_HAL_DRIVER,STM32F103xB - + ../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include @@ -349,12 +348,12 @@ 0 0 0 - 4 + 0 - - - - + + + + @@ -364,15 +363,15 @@ 0 1 0 - - - - - - - - - + + + + + + + + + @@ -442,6 +441,8 @@ 2 2 11 + + 1 @@ -460,7 +461,6 @@ 2 2 2 - 2 2 0 0 @@ -469,19 +469,13 @@ 2 2 2 + + + + + + - - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 1 -
@@ -608,17 +602,18 @@ + - + - + - + - + - +