From bb3a6c672e269d18e800e6beb1d1fa942d9e75fd Mon Sep 17 00:00:00 2001 From: hangpersonal Date: Sun, 2 Aug 2026 09:36:45 -0400 Subject: [PATCH] Update repo --- .../01_GPIO/.settings/language.settings.xml | 4 +- .../02_UART/.settings/language.settings.xml | 4 +- .../.settings/language.settings.xml | 4 +- .../.settings/language.settings.xml | 4 +- .../Core/Inc/exti.h | 6 - .../Core/Src/main.c | 1 - .../.settings/language.settings.xml | 4 +- .../05_GPIO_Interrupt_EXTI/Core/Src/main.c | 4 - .../07_Timer/.settings/language.settings.xml | 4 +- workspace/07_Timer/Core/Inc/tim.h | 3 - workspace/07_Timer/Core/Src/main.c | 1 - .../.settings/language.settings.xml | 4 +- .../08_ADC_Single_Conversion/Core/Src/main.c | 1 - .../.settings/language.settings.xml | 4 +- workspace/09_ADC_Interrupt/Core/Inc/adc.h | 2 - workspace/09_ADC_Interrupt/Core/Src/adc.c | 3 - workspace/09_ADC_Interrupt/Core/Src/main.c | 1 - .../.settings/language.settings.xml | 4 +- workspace/10_UART_Interrupt/Core/Src/main.c | 1 - .../.settings/language.settings.xml | 4 +- workspace/11_ADC_DMA/Core/Src/main.c | 1 - .../.settings/language.settings.xml | 4 +- .../12_ADC_DMA_MultiChannel/Core/Src/adc.c | 1 - .../.settings/language.settings.xml | 4 +- .../.settings/language.settings.xml | 4 +- .../14_DMA_MemoryToMemory/Core/Src/main.c | 172 ++++++------------ .../.settings/language.settings.xml | 4 +- .../.settings/language.settings.xml | 4 +- workspace/16_SPI_Interrupt/Core/Src/main.c | 3 - .../.settings/language.settings.xml | 4 +- .../.settings/language.settings.xml | 4 +- .../19_RTC/.settings/language.settings.xml | 4 +- workspace/19_RTC/Core/Src/main.c | 5 +- workspace/19_RTC/Core/Src/rtc.c | 2 + .../.settings/language.settings.xml | 4 +- .../.settings/language.settings.xml | 4 +- 36 files changed, 104 insertions(+), 183 deletions(-) diff --git a/workspace/01_GPIO/.settings/language.settings.xml b/workspace/01_GPIO/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/01_GPIO/.settings/language.settings.xml +++ b/workspace/01_GPIO/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/02_UART/.settings/language.settings.xml b/workspace/02_UART/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/02_UART/.settings/language.settings.xml +++ b/workspace/02_UART/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/03_UART_printf/.settings/language.settings.xml b/workspace/03_UART_printf/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/03_UART_printf/.settings/language.settings.xml +++ b/workspace/03_UART_printf/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/04_ADC_Continuous_Conversion/.settings/language.settings.xml b/workspace/04_ADC_Continuous_Conversion/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/04_ADC_Continuous_Conversion/.settings/language.settings.xml +++ b/workspace/04_ADC_Continuous_Conversion/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/04_ADC_Continuous_Conversion/Core/Inc/exti.h b/workspace/04_ADC_Continuous_Conversion/Core/Inc/exti.h index 635cd29..36ba775 100644 --- a/workspace/04_ADC_Continuous_Conversion/Core/Inc/exti.h +++ b/workspace/04_ADC_Continuous_Conversion/Core/Inc/exti.h @@ -9,10 +9,4 @@ void gpio_pc13_interrupt_init(void); - - - - - - #endif /* INC_EXTI_H_ */ diff --git a/workspace/04_ADC_Continuous_Conversion/Core/Src/main.c b/workspace/04_ADC_Continuous_Conversion/Core/Src/main.c index 47e1354..f3ccb97 100644 --- a/workspace/04_ADC_Continuous_Conversion/Core/Src/main.c +++ b/workspace/04_ADC_Continuous_Conversion/Core/Src/main.c @@ -7,7 +7,6 @@ #include "adc.h" // PA0: Button - // PD12: Green // PD13: Orange // PD14: Red diff --git a/workspace/05_GPIO_Interrupt_EXTI/.settings/language.settings.xml b/workspace/05_GPIO_Interrupt_EXTI/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/05_GPIO_Interrupt_EXTI/.settings/language.settings.xml +++ b/workspace/05_GPIO_Interrupt_EXTI/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/05_GPIO_Interrupt_EXTI/Core/Src/main.c b/workspace/05_GPIO_Interrupt_EXTI/Core/Src/main.c index b3826d5..9db50b7 100644 --- a/workspace/05_GPIO_Interrupt_EXTI/Core/Src/main.c +++ b/workspace/05_GPIO_Interrupt_EXTI/Core/Src/main.c @@ -8,7 +8,6 @@ #include "exti.h" // PA0: Button - // PD12: Green // PD13: Orange // PD14: Red @@ -21,11 +20,8 @@ int main(void) { HAL_Init(); led_init(); - gpio_pa0_interrupt_init(); - while(1) { - } } diff --git a/workspace/07_Timer/.settings/language.settings.xml b/workspace/07_Timer/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/07_Timer/.settings/language.settings.xml +++ b/workspace/07_Timer/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/07_Timer/Core/Inc/tim.h b/workspace/07_Timer/Core/Inc/tim.h index 020b815..8a5e0d9 100644 --- a/workspace/07_Timer/Core/Inc/tim.h +++ b/workspace/07_Timer/Core/Inc/tim.h @@ -6,11 +6,8 @@ #define TIMx TIM3 #define TIMx_IRQn TIM3_IRQn #define TIMx_IRQHandler TIM3_IRQHandler - #define _TIMx_CLK_ENABLE __HAL_RCC_TIM3_CLK_ENABLE() - void tim_timebase_init(void); - #endif /* INC_TIM_H_ */ diff --git a/workspace/07_Timer/Core/Src/main.c b/workspace/07_Timer/Core/Src/main.c index 95fc6ef..7a2ac93 100644 --- a/workspace/07_Timer/Core/Src/main.c +++ b/workspace/07_Timer/Core/Src/main.c @@ -6,7 +6,6 @@ #include "tim.h" // PA0: Button - // PD12: Green // PD13: Orange // PD14: Red diff --git a/workspace/08_ADC_Single_Conversion/.settings/language.settings.xml b/workspace/08_ADC_Single_Conversion/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/08_ADC_Single_Conversion/.settings/language.settings.xml +++ b/workspace/08_ADC_Single_Conversion/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/08_ADC_Single_Conversion/Core/Src/main.c b/workspace/08_ADC_Single_Conversion/Core/Src/main.c index 3437061..c7f070d 100644 --- a/workspace/08_ADC_Single_Conversion/Core/Src/main.c +++ b/workspace/08_ADC_Single_Conversion/Core/Src/main.c @@ -7,7 +7,6 @@ #include "adc.h" // PA0: Button - // PD12: Green // PD13: Orange // PD14: Red diff --git a/workspace/09_ADC_Interrupt/.settings/language.settings.xml b/workspace/09_ADC_Interrupt/.settings/language.settings.xml index 825446a..11fe24a 100644 --- a/workspace/09_ADC_Interrupt/.settings/language.settings.xml +++ b/workspace/09_ADC_Interrupt/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/09_ADC_Interrupt/Core/Inc/adc.h b/workspace/09_ADC_Interrupt/Core/Inc/adc.h index 79ed35b..ef0b029 100644 --- a/workspace/09_ADC_Interrupt/Core/Inc/adc.h +++ b/workspace/09_ADC_Interrupt/Core/Inc/adc.h @@ -5,9 +5,7 @@ uint32_t pa0_adc_read(void); void adc_init_start(void); - void adc_pa0_single_conv_init(void); - void adc_pa0_interrupt_init(void); #endif /* INC_ADC_H_ */ diff --git a/workspace/09_ADC_Interrupt/Core/Src/adc.c b/workspace/09_ADC_Interrupt/Core/Src/adc.c index 954738a..7c7f557 100644 --- a/workspace/09_ADC_Interrupt/Core/Src/adc.c +++ b/workspace/09_ADC_Interrupt/Core/Src/adc.c @@ -53,7 +53,6 @@ void adc_pa0_continuous_conv_init(void) { } - void adc_pa0_single_conv_init(void) { // Configure PA0 as analog pin @@ -95,8 +94,6 @@ void adc_pa0_single_conv_init(void) { } - - void adc_pa0_interrupt_init(void) { // Configure PA0 as analog pin diff --git a/workspace/09_ADC_Interrupt/Core/Src/main.c b/workspace/09_ADC_Interrupt/Core/Src/main.c index acd964a..e5e847f 100644 --- a/workspace/09_ADC_Interrupt/Core/Src/main.c +++ b/workspace/09_ADC_Interrupt/Core/Src/main.c @@ -7,7 +7,6 @@ #include "adc.h" // PA0: Button - // PD12: Green // PD13: Orange // PD14: Red diff --git a/workspace/10_UART_Interrupt/.settings/language.settings.xml b/workspace/10_UART_Interrupt/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/10_UART_Interrupt/.settings/language.settings.xml +++ b/workspace/10_UART_Interrupt/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/10_UART_Interrupt/Core/Src/main.c b/workspace/10_UART_Interrupt/Core/Src/main.c index ed9dee7..f92af42 100644 --- a/workspace/10_UART_Interrupt/Core/Src/main.c +++ b/workspace/10_UART_Interrupt/Core/Src/main.c @@ -7,7 +7,6 @@ #include "adc.h" // PA0: Button - // PD12: Green // PD13: Orange // PD14: Red diff --git a/workspace/11_ADC_DMA/.settings/language.settings.xml b/workspace/11_ADC_DMA/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/11_ADC_DMA/.settings/language.settings.xml +++ b/workspace/11_ADC_DMA/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/11_ADC_DMA/Core/Src/main.c b/workspace/11_ADC_DMA/Core/Src/main.c index c1b0560..d379ccb 100644 --- a/workspace/11_ADC_DMA/Core/Src/main.c +++ b/workspace/11_ADC_DMA/Core/Src/main.c @@ -7,7 +7,6 @@ #include "adc.h" // PA0: Button - // PD12: Green // PD13: Orange // PD14: Red diff --git a/workspace/12_ADC_DMA_MultiChannel/.settings/language.settings.xml b/workspace/12_ADC_DMA_MultiChannel/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/12_ADC_DMA_MultiChannel/.settings/language.settings.xml +++ b/workspace/12_ADC_DMA_MultiChannel/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/12_ADC_DMA_MultiChannel/Core/Src/adc.c b/workspace/12_ADC_DMA_MultiChannel/Core/Src/adc.c index 8acc5f3..3d2cc64 100644 --- a/workspace/12_ADC_DMA_MultiChannel/Core/Src/adc.c +++ b/workspace/12_ADC_DMA_MultiChannel/Core/Src/adc.c @@ -299,7 +299,6 @@ void adc_pa0pa4_dma_init(void) { // Link adc to dma hadc1.DMA_Handle = &hdma_adc1; - } diff --git a/workspace/13_UART_DMA/.settings/language.settings.xml b/workspace/13_UART_DMA/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/13_UART_DMA/.settings/language.settings.xml +++ b/workspace/13_UART_DMA/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/14_DMA_MemoryToMemory/.settings/language.settings.xml b/workspace/14_DMA_MemoryToMemory/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/14_DMA_MemoryToMemory/.settings/language.settings.xml +++ b/workspace/14_DMA_MemoryToMemory/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/14_DMA_MemoryToMemory/Core/Src/main.c b/workspace/14_DMA_MemoryToMemory/Core/Src/main.c index ac65a9b..1ae3107 100644 --- a/workspace/14_DMA_MemoryToMemory/Core/Src/main.c +++ b/workspace/14_DMA_MemoryToMemory/Core/Src/main.c @@ -15,25 +15,15 @@ // PA2: UART2 TX (AF7) // PA3: UART2 RX (AF7) -ADC_HandleTypeDef hadc1; - void SysTick_Handler(void) { HAL_IncTick(); } +ADC_HandleTypeDef hadc1; - - - -#define BUFFER_SIZE 32 -#define DMA_STREAM DMA2_Stream0 -#define DMA_STREAM_IRQ DMA2_Stream0_IRQn -#define DMA_STREAM_IRQHANDLER DMA2_Stream0_IRQHandler -#define DMA_CHANNEL DMA_CHANNEL_0 - -DMA_HandleTypeDef DmaHandle; +#define BUFFER_SIZE 32 static const uint32_t aSRC_Const_Buffer[BUFFER_SIZE] = { 0x11111111, 0x11111111, 0x11111111, 0x11111111, @@ -48,11 +38,62 @@ static const uint32_t aSRC_Const_Buffer[BUFFER_SIZE] = { static uint32_t aDST_Buffer[BUFFER_SIZE]; -static void TransferComplete(DMA_HandleTypeDef *DmaHandle); -static void TransferError(DMA_HandleTypeDef *DmaHandle); -static void dma_config(void); + +DMA_HandleTypeDef hdma2; +static void TransferComplete(DMA_HandleTypeDef *hdma) { + // Do something + printf("Transfer complete!\r\n"); +} + +static void TransferError(DMA_HandleTypeDef *hdma) { + // Do something + printf("Transfer error!\r\n"); +} + +void DMA2_Stream0_IRQHandler(void) { + HAL_DMA_IRQHandler(&hdma2); +} + +void DMA2_config(DMA_HandleTypeDef *hdma) +{ + if (hdma == NULL) { + return; + } + + __HAL_RCC_DMA2_CLK_ENABLE(); + + // Clear the entire handle before configuring it + *hdma = (DMA_HandleTypeDef){0}; + + hdma->Instance = DMA2_Stream0; + hdma->Init.Channel = DMA_CHANNEL_0; + hdma->Init.Direction = DMA_MEMORY_TO_MEMORY; + hdma->Init.PeriphInc = DMA_PINC_ENABLE; + hdma->Init.MemInc = DMA_MINC_ENABLE; + hdma->Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; + hdma->Init.MemDataAlignment = DMA_MDATAALIGN_WORD; + hdma->Init.Mode = DMA_NORMAL; + hdma->Init.Priority = DMA_PRIORITY_HIGH; + hdma->Init.FIFOMode = DMA_FIFOMODE_ENABLE; + hdma->Init.FIFOThreshold = DMA_FIFO_THRESHOLD_1QUARTERFULL; + hdma->Init.MemBurst = DMA_MBURST_SINGLE; + hdma->Init.PeriphBurst = DMA_PBURST_SINGLE; + + HAL_DMA_Init(hdma); + + // Register callback function + HAL_DMA_RegisterCallback(hdma, HAL_DMA_XFER_CPLT_CB_ID, + TransferComplete); + + HAL_DMA_RegisterCallback(hdma, HAL_DMA_XFER_ERROR_CB_ID, + TransferError); + + HAL_NVIC_SetPriority(DMA2_Stream0_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA2_Stream0_IRQn); + +} int main(void) { @@ -63,108 +104,11 @@ int main(void) { uart_init(); - dma_config(); + DMA2_config(&hdma2); + HAL_DMA_Start_IT(&hdma2, (uint32_t)&aSRC_Const_Buffer, (uint32_t)&aDST_Buffer, BUFFER_SIZE); while(1) { } } - - -static void dma_config(void) { - - __HAL_RCC_DMA2_CLK_ENABLE(); - - DmaHandle.Instance = DMA_STREAM; - DmaHandle.Init.Channel = DMA_CHANNEL; - DmaHandle.Init.Direction = DMA_MEMORY_TO_MEMORY; - DmaHandle.Init.PeriphDataAlignment = DMA_PDATAALIGN_WORD; - DmaHandle.Init.MemDataAlignment = DMA_MDATAALIGN_WORD; - DmaHandle.Init.PeriphInc = DMA_PINC_ENABLE; - DmaHandle.Init.MemInc = DMA_MINC_ENABLE; - DmaHandle.Init.Mode = DMA_NORMAL; - DmaHandle.Init.Priority = DMA_PRIORITY_HIGH; - DmaHandle.Init.FIFOMode = DMA_FIFOMODE_ENABLE; - DmaHandle.Init.FIFOThreshold = DMA_FIFO_THRESHOLD_1QUARTERFULL; - DmaHandle.Init.MemBurst = DMA_MBURST_SINGLE; - - HAL_DMA_Init(&DmaHandle); - - // Register callback function - HAL_DMA_RegisterCallback(&DmaHandle, HAL_DMA_XFER_CPLT_CB_ID, TransferComplete); - HAL_DMA_RegisterCallback(&DmaHandle, HAL_DMA_XFER_ERROR_CB_ID, TransferError); - - HAL_NVIC_SetPriority(DMA_STREAM_IRQ, 0, 0); - HAL_NVIC_EnableIRQ(DMA_STREAM_IRQ); - - HAL_DMA_Start_IT(&DmaHandle, (uint32_t)&aSRC_Const_Buffer, (uint32_t)&aDST_Buffer, BUFFER_SIZE); - -} - - -static void TransferComplete(DMA_HandleTypeDef *DmaHandle) { - // Do something - printf("Transfer complete! \r\n"); -} - -static void TransferError(DMA_HandleTypeDef *DmaHandle) { - // Do something - printf("Transfer error! \r\n"); -} - - -void DMA_STREAM_IRQHANDLER(void) { - HAL_DMA_IRQHandler(&DmaHandle); -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/workspace/15_SPI_Polling/.settings/language.settings.xml b/workspace/15_SPI_Polling/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/15_SPI_Polling/.settings/language.settings.xml +++ b/workspace/15_SPI_Polling/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/16_SPI_Interrupt/.settings/language.settings.xml b/workspace/16_SPI_Interrupt/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/16_SPI_Interrupt/.settings/language.settings.xml +++ b/workspace/16_SPI_Interrupt/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/16_SPI_Interrupt/Core/Src/main.c b/workspace/16_SPI_Interrupt/Core/Src/main.c index 99d8873..569be2f 100644 --- a/workspace/16_SPI_Interrupt/Core/Src/main.c +++ b/workspace/16_SPI_Interrupt/Core/Src/main.c @@ -35,9 +35,6 @@ void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) { } - - - int main(void) { HAL_Init(); diff --git a/workspace/17_SPI_DMA/.settings/language.settings.xml b/workspace/17_SPI_DMA/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/17_SPI_DMA/.settings/language.settings.xml +++ b/workspace/17_SPI_DMA/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/18_I2C_ADXL345/.settings/language.settings.xml b/workspace/18_I2C_ADXL345/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/18_I2C_ADXL345/.settings/language.settings.xml +++ b/workspace/18_I2C_ADXL345/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/19_RTC/.settings/language.settings.xml b/workspace/19_RTC/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/19_RTC/.settings/language.settings.xml +++ b/workspace/19_RTC/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - + diff --git a/workspace/19_RTC/Core/Src/main.c b/workspace/19_RTC/Core/Src/main.c index 4998787..c1d5877 100644 --- a/workspace/19_RTC/Core/Src/main.c +++ b/workspace/19_RTC/Core/Src/main.c @@ -59,7 +59,10 @@ int main(void) { rtc_calendar_show(time, date); -// HAL_Delay(10); + printf("Time: %s\r\n", time); + printf("Date: %s\r\n", date); + + HAL_Delay(1000); } diff --git a/workspace/19_RTC/Core/Src/rtc.c b/workspace/19_RTC/Core/Src/rtc.c index 7d23128..fbab7fa 100644 --- a/workspace/19_RTC/Core/Src/rtc.c +++ b/workspace/19_RTC/Core/Src/rtc.c @@ -43,6 +43,8 @@ void rtc_init(void) { } +// Jul. 14, 2019 +// 03:00:00 AM void rtc_calendar_config(void) { RTC_DateTypeDef sdatestructure; diff --git a/workspace/stm32f407_default/.settings/language.settings.xml b/workspace/stm32f407_default/.settings/language.settings.xml index e411bca..7bc40be 100644 --- a/workspace/stm32f407_default/.settings/language.settings.xml +++ b/workspace/stm32f407_default/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/workspace/stm32f407_template/.settings/language.settings.xml b/workspace/stm32f407_template/.settings/language.settings.xml index 18902b1..2dd6b7b 100644 --- a/workspace/stm32f407_template/.settings/language.settings.xml +++ b/workspace/stm32f407_template/.settings/language.settings.xml @@ -5,7 +5,7 @@ - + @@ -17,7 +17,7 @@ - +