From cd2662eceb0205f85947631c940419d83b7f7b0b Mon Sep 17 00:00:00 2001 From: StefansE Date: Sun, 29 Mar 2026 13:39:14 +0200 Subject: [PATCH] DMA NVIC priority increase. --- .settings/stm32cubeide.project.prefs | 2 +- Core/Src/dma.c | 2 +- Core/Src/main.c | 17 ++++++----------- Core/Src/tim.c | 2 +- Core/Src/ws2812_effect.c | 8 ++++---- LedRing.ioc | 11 ++++++----- USB_DEVICE/App/usbd_cdc_if.c | 1 - 7 files changed, 19 insertions(+), 24 deletions(-) diff --git a/.settings/stm32cubeide.project.prefs b/.settings/stm32cubeide.project.prefs index c11a0a3..7f626b4 100644 --- a/.settings/stm32cubeide.project.prefs +++ b/.settings/stm32cubeide.project.prefs @@ -1,3 +1,3 @@ 8DF89ED150041C4CBC7CB9A9CAA90856=3B9AC612F80B3672D4AEDF95B2FAE837 -DC22A860405A8BF2F2C095E5B6529F12=B906B5FA0271D057D2544B3C1B4A8DE5 +DC22A860405A8BF2F2C095E5B6529F12=3B9AC612F80B3672D4AEDF95B2FAE837 eclipse.preferences.version=1 diff --git a/Core/Src/dma.c b/Core/Src/dma.c index 1d6068c..a77679f 100644 --- a/Core/Src/dma.c +++ b/Core/Src/dma.c @@ -44,7 +44,7 @@ void MX_DMA_Init(void) /* DMA interrupt init */ /* DMA1_Channel5_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); + HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 6, 0); HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); } diff --git a/Core/Src/main.c b/Core/Src/main.c index 4025563..93257c4 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -30,6 +30,7 @@ #include "ws2812_effect.h" #include "ds1307.h" #include "clock.h" +#include "myComms.h" #include "usbd_cdc_if.h" @@ -95,7 +96,8 @@ int main(void) { /* USER CODE BEGIN 1 */ - + // uint8_t UART_Buff[] = "Hello World\n"; + // #define EFFECT_TIME 1000 /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ @@ -124,18 +126,13 @@ int main(void) MX_USB_DEVICE_Init(); /* USER CODE BEGIN 2 */ - - - uint32_t mytimer = 0; - // RTC config ds1307_init(); // ds1307_config(0, 10, 19, THURSDAY, 26, MARCH, 2026, +1, 33); - HAL_TIM_Base_Start(&htim2); ws2812_Init(); - //ws_effect_setDisplayColoursNV(); + /* USER CODE END 2 */ @@ -148,13 +145,11 @@ int main(void) /* USER CODE BEGIN 3 */ -uint8_t UART_Buff[] = "Hello World\n"; -#define EFFECT_TIME 10000 + //ws_effect_setDisplayColoursNV(); - - ds1307_update(&my_rtc); + ds1307_update(&my_rtc); uint8_t hour = my_rtc.hours; uint8_t minutes = my_rtc.minutes; diff --git a/Core/Src/tim.c b/Core/Src/tim.c index 4371bb4..decee41 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -111,7 +111,7 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) __HAL_LINKDMA(tim_baseHandle,hdma[TIM_DMA_ID_CC1],hdma_tim2_ch1); /* TIM2 interrupt Init */ - HAL_NVIC_SetPriority(TIM2_IRQn, 0, 0); + HAL_NVIC_SetPriority(TIM2_IRQn, 6, 0); HAL_NVIC_EnableIRQ(TIM2_IRQn); /* USER CODE BEGIN TIM2_MspInit 1 */ diff --git a/Core/Src/ws2812_effect.c b/Core/Src/ws2812_effect.c index 2ccce23..982a73f 100644 --- a/Core/Src/ws2812_effect.c +++ b/Core/Src/ws2812_effect.c @@ -32,22 +32,22 @@ void ws_effect_setDisplayColoursNV(void){ uint8_t rxBuf[3] = {0}; - ds1307_read_user_RAM(NV_COLOUR_HOURS_ADDR, rxBuf, sizeof(rxBuf)); + ds1307_read_user_RAM(NV_COLOUR_HOURS_ADDR, rxBuf, 3); colour_hours.r = rxBuf[0]; colour_hours.g = rxBuf[1]; colour_hours.b = rxBuf[2]; - ds1307_read_user_RAM(NV_COLOUR_MINUTES_ADDR, rxBuf, sizeof(rxBuf)); + ds1307_read_user_RAM(NV_COLOUR_MINUTES_ADDR, rxBuf, 3); colour_minutes.r = rxBuf[0]; colour_minutes.g = rxBuf[1]; colour_minutes.b = rxBuf[2]; - ds1307_read_user_RAM(NV_COLOUR_SECONDS_ADDR, rxBuf, sizeof(rxBuf)); + ds1307_read_user_RAM(NV_COLOUR_SECONDS_ADDR, rxBuf, 3); colour_seconds.r = rxBuf[0]; colour_seconds.g = rxBuf[1]; colour_seconds.b = rxBuf[2]; - ds1307_read_user_RAM(NV_COLOUR_BACKGND_ADDR, rxBuf, sizeof(rxBuf)); + ds1307_read_user_RAM(NV_COLOUR_BACKGND_ADDR, rxBuf, 3); colour_background.r = rxBuf[0]; colour_background.g = rxBuf[1]; colour_background.b = rxBuf[2]; diff --git a/LedRing.ioc b/LedRing.ioc index 05f2ff8..3374ea7 100644 --- a/LedRing.ioc +++ b/LedRing.ioc @@ -46,10 +46,10 @@ Mcu.PinsNb=13 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103C6Tx -MxCube.Version=6.14.0 -MxDb.Version=DB.6.0.140 +MxCube.Version=6.14.1 +MxDb.Version=DB.6.0.141 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false -NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true +NVIC.DMA1_Channel5_IRQn=true\:6\:0\:true\:false\:true\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.ForceEnableDMAVector=true NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false @@ -59,7 +59,7 @@ NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false -NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.TIM2_IRQn=true\:6\:0\:true\:false\:true\:true\:true\:true NVIC.USB_LP_CAN1_RX0_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false PA0-WKUP.Signal=S_TIM2_CH1_ETR @@ -115,7 +115,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=true -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_I2C1_Init-I2C1-false-HAL-true,6-MX_USART2_UART_Init-USART2-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_TIM2_Init-TIM2-false-HAL-true,5-MX_I2C1_Init-I2C1-false-HAL-true,6-MX_USB_DEVICE_Init-USB_DEVICE-false-HAL-false RCC.ADCFreqValue=36000000 RCC.AHBFreq_Value=72000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 @@ -158,3 +158,4 @@ VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Mode=CDC_FS VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS.Signal=USB_DEVICE_VS_USB_DEVICE_CDC_FS board=custom +isbadioc=false diff --git a/USB_DEVICE/App/usbd_cdc_if.c b/USB_DEVICE/App/usbd_cdc_if.c index 5315c89..78e77e9 100644 --- a/USB_DEVICE/App/usbd_cdc_if.c +++ b/USB_DEVICE/App/usbd_cdc_if.c @@ -256,7 +256,6 @@ static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length) * @param Len: Number of data received (in bytes) * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL */ - static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */