2025-07-28
7:30 AM
- last edited on
2025-07-29
6:53 AM
by
Lina_DABASINSKA
Trouble Report: STM32G474 FD CAN RX Interrupt Causes HardFault Due to VTOR Left at 0x00000000
Platform Details
----------------
- Microcontroller: STM32G474VETx
- IDE: STM32CubeIDE
- Version: 1.16.0
- Build: 21983_20240628_1741
- Startup project: Standard CubeMX-generated application with FDCAN peripheral using interrupt-based RX
- RTOS: None (bare metal)
- Debugger: ST-LINK / OpenOCD
Problem Summary
===============
Using the CUBEMX tool I have used the alternate pins FDCAN3_RX to PA8 and FDCAN3_TX to PA15.
The GPIO init is pasted below. It fails to configure PA8 and PA15. Have I misunderstod something here? Is it set anywhere else?
/**
* @brief GPIO Initialization Function
* None
* @retval None
*/
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* USER CODE BEGIN MX_GPIO_Init_1 */
/* USER CODE END MX_GPIO_Init_1 */
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOE_CLK_ENABLE();
__HAL_RCC_GPIOF_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
|GPIO_PIN_6|GPIO_PIN_12, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_2, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_5
|GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_13|GPIO_PIN_7, GPIO_PIN_RESET);
/*Configure GPIO pins : PE2 PE3 PE4 PE5
PE6 PE12 */
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
|GPIO_PIN_6|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
/*Configure GPIO pin : PC2 */
GPIO_InitStruct.Pin = GPIO_PIN_2;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PA4 */
GPIO_InitStruct.Pin = GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PB12 PB13 PB14 PB5
PB6 PB7 */
GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_5
|GPIO_PIN_6|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pins : PD8 PD9 PD10 PD11
PD13 PD7 */
GPIO_InitStruct.Pin = GPIO_PIN_8|GPIO_PIN_9|GPIO_PIN_10|GPIO_PIN_11
|GPIO_PIN_13|GPIO_PIN_7;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* USER CODE BEGIN MX_GPIO_Init_2 */
// CUBE MX YOU HAVE MISSED THIS!!!!! 28JUL2028
/* Configure GPIO pin : PA8
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = 9; // GPIO_AF9_FDCAN3;
Configure GPIO pin : PA15
GPIO_InitStruct.Pin = GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
GPIO_InitStruct.Alternate = 9; // GPIO_AF9_FDCAN3;
Configure GPIO pin : PA4
GPIO_InitStruct.Pin = GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);*/
/* USER CODE END MX_GPIO_Init_2 */
}
2025-07-28 8:40 AM
Also the define
"GPIO_AF9_FDCAN3"
Is not found. Its almost like the CubeMX/code~generation is utterly ignoring the alternate functions
that are presented in the GUI
2025-07-28 9:03 AM - edited 2025-07-28 9:05 AM
They are initialized in the HAL_CAN_MspInit function.
Include your IOC if you're having issues.
VTOR is left at default. If you want it set, undefine the USER_VECT_TAB_ADDRESS define in the system_*.c file.
2025-07-29 4:22 AM
#MicroXplorer Configuration settings - do not modify
ADC1.Channel-3\#ChannelRegularConversion=ADC_CHANNEL_1
ADC1.ClockPrescaler=ADC_CLOCK_ASYNC_DIV8
ADC1.CommonPathInternal=null|null|null|null
ADC1.ContinuousConvMode=ENABLE
ADC1.DMAAccessModeView=ENABLE
ADC1.DMAContinuousRequests=DISABLE
ADC1.EOCSelection=ADC_EOC_SEQ_CONV
ADC1.EnableAnalogWatchDog3=false
ADC1.EnableRegularConversion=ENABLE
ADC1.ExternalTrigConv=ADC_EXTERNALTRIG_HRTIM_TRG8
ADC1.IPParameters=EnableRegularConversion,Mode,DMAAccessModeView,DMAContinuousRequests,Rank-3\#ChannelRegularConversion,Channel-3\#ChannelRegularConversion,SamplingTime-3\#ChannelRegularConversion,OffsetNumber-3\#ChannelRegularConversion,NbrOfConversionFlag,ExternalTrigConv,NbrOfConversion,EnableAnalogWatchDog3,Overrun,ContinuousConvMode,EOCSelection,TwoSamplingDelay,ClockPrescaler,master,CommonPathInternal
ADC1.Mode=ADC_DUALMODE_REGSIMULT
ADC1.NbrOfConversion=1
ADC1.NbrOfConversionFlag=1
ADC1.OffsetNumber-3\#ChannelRegularConversion=ADC_OFFSET_NONE
ADC1.Overrun=ADC_OVR_DATA_OVERWRITTEN
ADC1.Rank-3\#ChannelRegularConversion=1
ADC1.SamplingTime-3\#ChannelRegularConversion=ADC_SAMPLETIME_2CYCLES_5
ADC1.TwoSamplingDelay=ADC_TWOSAMPLINGDELAY_4CYCLES
ADC1.master=1
ADC2.ClockPrescaler=ADC_CLOCK_ASYNC_DIV8
ADC2.CommonPathInternal=null|null|null|null
ADC2.DMAAccessModeView=ENABLE
ADC2.EOCSelection=ADC_EOC_SEQ_CONV
ADC2.EnableRegularConversion=DISABLE
ADC2.IPParameters=EnableRegularConversion,Mode,DMAAccessModeView,EOCSelection,TwoSamplingDelay,Overrun,ClockPrescaler,CommonPathInternal
ADC2.Mode=ADC_DUALMODE_REGSIMULT
ADC2.Overrun=ADC_OVR_DATA_OVERWRITTEN
ADC2.TwoSamplingDelay=ADC_TWOSAMPLINGDELAY_4CYCLES
CAD.formats=
CAD.pinconfig=
CAD.provider=
CRC.IPParameters=InputDataFormat,InputDataInversionMode,OutputDataInversionMode
CRC.InputDataFormat=CRC_INPUTDATA_FORMAT_WORDS
CRC.InputDataInversionMode=CRC_INPUTDATA_INVERSION_NONE
CRC.OutputDataInversionMode=CRC_OUTPUTDATA_INVERSION_DISABLE
DAC1.DAC_Channel-DAC_OUT2=DAC_CHANNEL_2
DAC1.IPParameters=DAC_Channel-DAC_OUT2
DAC3.DAC_Channel-DAC_OUT2_Int=DAC_CHANNEL_2
DAC3.IPParameters=DAC_Channel-DAC_OUT2_Int
FDCAN1.CalculateBaudRateNominal=100000
FDCAN1.CalculateTimeBitNominal=10000
FDCAN1.CalculateTimeQuantumNominal=1000.0
FDCAN1.ClockDivider=FDCAN_CLOCK_DIV8
FDCAN1.DataSyncJumpWidth=4
FDCAN1.DataTimeSeg1=6
FDCAN1.DataTimeSeg2=5
FDCAN1.ExtFiltersNbr=4
FDCAN1.FrameFormat=FDCAN_FRAME_CLASSIC
FDCAN1.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,NominalPrescaler,ClockDivider,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2,NominalTimeSeg1,NominalTimeSeg2,NominalSyncJumpWidth,FrameFormat,ExtFiltersNbr,StdFiltersNbr
FDCAN1.NominalPrescaler=21
FDCAN1.NominalSyncJumpWidth=128
FDCAN1.NominalTimeSeg1=6
FDCAN1.NominalTimeSeg2=3
FDCAN1.StdFiltersNbr=4
FDCAN3.CalculateBaudRateNominal=2000000
FDCAN3.CalculateTimeBitNominal=500
FDCAN3.CalculateTimeQuantumNominal=35.714285714285715
FDCAN3.DataSyncJumpWidth=4
FDCAN3.DataTimeSeg1=12
FDCAN3.DataTimeSeg2=3
FDCAN3.ExtFiltersNbr=4
FDCAN3.IPParameters=CalculateTimeQuantumNominal,CalculateTimeBitNominal,CalculateBaudRateNominal,NominalPrescaler,NominalTimeSeg1,NominalTimeSeg2,ExtFiltersNbr,DataTimeSeg1,DataTimeSeg2,DataSyncJumpWidth,NominalSyncJumpWidth,StdFiltersNbr,Mode
FDCAN3.Mode=FDCAN_MODE_BUS_MONITORING
FDCAN3.NominalPrescaler=6
FDCAN3.NominalSyncJumpWidth=4
FDCAN3.NominalTimeSeg1=10
FDCAN3.NominalTimeSeg2=3
FDCAN3.StdFiltersNbr=4
File.Version=6
GPIO.groupedBy=Group By Peripherals
KeepUserPlacement=false
Mcu.CPN=STM32G474VET3
Mcu.Family=STM32G4
Mcu.IP0=ADC1
Mcu.IP1=ADC2
Mcu.IP10=SPI1
Mcu.IP11=SYS
Mcu.IP12=TIM3
Mcu.IP13=TIM6
Mcu.IP14=TIM8
Mcu.IP15=TIM15
Mcu.IP16=USART1
Mcu.IP17=USART2
Mcu.IP18=USART3
Mcu.IP19=USB
Mcu.IP2=CRC
Mcu.IP3=DAC1
Mcu.IP4=DAC3
Mcu.IP5=FDCAN1
Mcu.IP6=FDCAN3
Mcu.IP7=NVIC
Mcu.IP8=OPAMP3
Mcu.IP9=RCC
Mcu.IPNb=20
Mcu.Name=STM32G474V(B-C-E)Tx
Mcu.Package=LQFP100
Mcu.Pin0=PE2
Mcu.Pin1=PE3
Mcu.Pin10=PA0
Mcu.Pin11=PA1
Mcu.Pin12=PA2
Mcu.Pin13=PA3
Mcu.Pin14=PA4
Mcu.Pin15=PA5
Mcu.Pin16=PA6
Mcu.Pin17=PA7
Mcu.Pin18=PC5
Mcu.Pin19=PB0
Mcu.Pin2=PE4
Mcu.Pin20=PB1
Mcu.Pin21=PE12
Mcu.Pin22=PB11
Mcu.Pin23=PB12
Mcu.Pin24=PB13
Mcu.Pin25=PB14
Mcu.Pin26=PB15
Mcu.Pin27=PD8
Mcu.Pin28=PD9
Mcu.Pin29=PD10
Mcu.Pin3=PE5
Mcu.Pin30=PD11
Mcu.Pin31=PD12
Mcu.Pin32=PD13
Mcu.Pin33=PA8
Mcu.Pin34=PA9
Mcu.Pin35=PA10
Mcu.Pin36=PA11
Mcu.Pin37=PA12
Mcu.Pin38=PA13
Mcu.Pin39=PA14
Mcu.Pin4=PE6
Mcu.Pin40=PA15
Mcu.Pin41=PC10
Mcu.Pin42=PC11
Mcu.Pin43=PD0
Mcu.Pin44=PD5
Mcu.Pin45=PD7
Mcu.Pin46=PB3
Mcu.Pin47=PB4
Mcu.Pin48=PB5
Mcu.Pin49=PB6
Mcu.Pin5=PF0-OSC_IN
Mcu.Pin50=PB7
Mcu.Pin51=PB9
Mcu.Pin52=VP_CRC_VS_CRC
Mcu.Pin53=VP_DAC3_VS_DACI2
Mcu.Pin54=VP_SYS_VS_Systick
Mcu.Pin55=VP_SYS_VS_DBSignals
Mcu.Pin56=VP_TIM3_VS_ClockSourceINT
Mcu.Pin57=VP_TIM6_VS_ClockSourceINT
Mcu.Pin58=VP_TIM8_VS_ClockSourceINT
Mcu.Pin59=VP_TIM15_VS_ClockSourceINT
Mcu.Pin6=PF1-OSC_OUT
Mcu.Pin7=PC0
Mcu.Pin8=PC2
Mcu.Pin9=PC3
Mcu.PinsNb=60
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32G474VETx
MxCube.Version=6.12.0
MxDb.Version=DB.6.0.120
NVIC.ADC1_2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.FDCAN1_IT0_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.FDCAN1_IT1_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.ForceEnableDMAVector=true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.MemoryManagement_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.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.TIM6_DAC_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA0.Mode=IN1-Single-Ended
PA0.Signal=ADC1_IN1
PA1.Mode=IN2-Single-Ended
PA1.Signal=ADC2_IN2
PA10.Locked=true
PA10.Mode=Asynchronous
PA10.Signal=USART1_RX
PA11.Mode=Device
PA11.Signal=USB_DM
PA12.Locked=true
PA12.Mode=Device
PA12.Signal=USB_DP
PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO
PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK
PA15.Mode=FDCAN_Activate
PA15.Signal=FDCAN3_TX
PA2.Mode=IN3-Single-Ended
PA2.Signal=ADC1_IN3
PA3.Mode=Asynchronous
PA3.Signal=USART2_RX
PA4.Locked=true
PA4.Signal=GPIO_Output
PA5.Signal=COMP_DAC12_group
PA6.Mode=IN3-Single-Ended
PA6.Signal=ADC2_IN3
PA7.Mode=Full_Duplex_Master
PA7.Signal=SPI1_MOSI
PA8.Mode=FDCAN_Activate
PA8.Signal=FDCAN3_RX
PA9.Locked=true
PA9.Mode=Asynchronous
PA9.Signal=USART1_TX
PB0.Mode=IN15-Single-Ended
PB0.Signal=ADC1_IN15
PB1.Mode=Follower-DAC_OUT2-INP
PB1.Signal=OPAMP3_VOUT
PB11.Mode=IN14-Single-Ended
PB11.Signal=ADC2_IN14
PB12.Locked=true
PB12.Signal=GPIO_Output
PB13.Locked=true
PB13.Signal=GPIO_Output
PB14.Locked=true
PB14.Signal=GPIO_Output
PB15.Mode=IN15-Single-Ended
PB15.Signal=ADC2_IN15
PB3.Mode=Full_Duplex_Master
PB3.Signal=SPI1_SCK
PB4.Mode=Full_Duplex_Master
PB4.Signal=SPI1_MISO
PB5.Locked=true
PB5.Signal=GPIO_Output
PB6.Locked=true
PB6.Signal=GPIO_Output
PB7.Locked=true
PB7.Signal=GPIO_Output
PB9.Locked=true
PB9.Mode=FDCAN_Activate
PB9.Signal=FDCAN1_TX
PC0.Mode=IN6-Single-Ended
PC0.Signal=ADC1_IN6
PC10.Locked=true
PC10.Mode=Asynchronous
PC10.Signal=USART3_TX
PC11.Locked=true
PC11.Mode=Asynchronous
PC11.Signal=USART3_RX
PC2.Locked=true
PC2.Signal=GPIO_Output
PC3.Mode=IN9-Single-Ended
PC3.Signal=ADC2_IN9
PC5.Mode=IN11-Single-Ended
PC5.Signal=ADC2_IN11
PD0.Locked=true
PD0.Mode=FDCAN_Activate
PD0.Signal=FDCAN1_RX
PD10.Locked=true
PD10.Signal=GPIO_Output
PD11.Locked=true
PD11.Signal=GPIO_Output
PD12.Locked=true
PD12.Signal=USART3_DE
PD13.Locked=true
PD13.Signal=GPIO_Output
PD5.Mode=Asynchronous
PD5.Signal=USART2_TX
PD7.Locked=true
PD7.Signal=GPIO_Output
PD8.Locked=true
PD8.Signal=GPIO_Output
PD9.Locked=true
PD9.Signal=GPIO_Output
PE12.Locked=true
PE12.Signal=GPIO_Output
PE2.Locked=true
PE2.Signal=GPIO_Output
PE3.Locked=true
PE3.Signal=GPIO_Output
PE4.Locked=true
PE4.Signal=GPIO_Output
PE5.Locked=true
PE5.Signal=GPIO_Output
PE6.Locked=true
PE6.Signal=GPIO_Output
PF0-OSC_IN.Mode=HSE-External-Oscillator
PF0-OSC_IN.Signal=RCC_OSC_IN
PF1-OSC_OUT.Mode=HSE-External-Oscillator
PF1-OSC_OUT.Signal=RCC_OSC_OUT
PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
ProjectManager.CompilerOptimize=6
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=false
ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32G474VETx
ProjectManager.FirmwarePackage=STM32Cube FW_G4 V1.6.1
ProjectManager.FreePins=false
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Core/Src
ProjectManager.NoMain=false
ProjectManager.PreviousToolchain=STM32CubeIDE
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=NOX_OS_CO_development_board.ioc
ProjectManager.ProjectName=NOX_OS_CO_development_board
ProjectManager.ProjectStructure=
ProjectManager.RegisterCallBack=
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=STM32CubeIDE
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_ADC1_Init-ADC1-false-HAL-true,4-MX_TIM6_Init-TIM6-false-HAL-true,5-MX_ADC2_Init-ADC2-false-HAL-true,6-MX_OPAMP3_Init-OPAMP3-false-HAL-true,7-MX_DAC3_Init-DAC3-false-HAL-true,8-MX_FDCAN1_Init-FDCAN1-false-HAL-true,9-MX_TIM8_Init-TIM8-false-HAL-true,10-MX_TIM3_Init-TIM3-false-HAL-true,11-MX_USART1_UART_Init-USART1-false-HAL-true,12-MX_CRC_Init-CRC-false-HAL-true,13-MX_TIM15_Init-TIM15-false-HAL-true,14-MX_USART3_UART_Init-USART3-false-HAL-true,15-MX_SPI1_Init-SPI1-false-HAL-true,16-MX_DAC1_Init-DAC1-false-HAL-true,17-MX_USART2_UART_Init-USART2-false-HAL-true,18-MX_USB_PCD_Init-USB-false-HAL-true,19-MX_FDCAN3_Init-FDCAN3-false-HAL-true
RCC.ADC12Freq_Value=168000000
RCC.ADC345Freq_Value=168000000
RCC.AHBFreq_Value=168000000
RCC.APB1Freq_Value=168000000
RCC.APB1TimFreq_Value=168000000
RCC.APB2Freq_Value=168000000
RCC.APB2TimFreq_Value=168000000
RCC.CK48CLockSelection=RCC_USBCLKSOURCE_HSI48
RCC.CRSFreq_Value=48000000
RCC.CortexFreq_Value=168000000
RCC.EXTERNAL_CLOCK_VALUE=12288000
RCC.FCLKCortexFreq_Value=168000000
RCC.FDCANFreq_Value=168000000
RCC.FamilyName=M
RCC.HCLKFreq_Value=168000000
RCC.HRTIM1Freq_Value=168000000
RCC.HSE_VALUE=24000000
RCC.HSI48_VALUE=48000000
RCC.HSI_VALUE=16000000
RCC.I2C1Freq_Value=168000000
RCC.I2C2Freq_Value=168000000
RCC.I2C3Freq_Value=168000000
RCC.I2C4Freq_Value=168000000
RCC.I2SFreq_Value=168000000
RCC.IPParameters=ADC12Freq_Value,ADC345Freq_Value,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CK48CLockSelection,CRSFreq_Value,CortexFreq_Value,EXTERNAL_CLOCK_VALUE,FCLKCortexFreq_Value,FDCANFreq_Value,FamilyName,HCLKFreq_Value,HRTIM1Freq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C2Freq_Value,I2C3Freq_Value,I2C4Freq_Value,I2SFreq_Value,LPTIM1Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSE_VALUE,LSI_VALUE,MCO1PinFreq_Value,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSourceVirtual,PWRFreq_Value,QSPIFreq_Value,RNGFreq_Value,SAI1Freq_Value,SYSCLKFreq_VALUE,SYSCLKSource,UART4Freq_Value,UART5Freq_Value,USART1Freq_Value,USART2Freq_Value,USART3Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value
RCC.LPTIM1Freq_Value=168000000
RCC.LPUART1Freq_Value=168000000
RCC.LSCOPinFreq_Value=32000
RCC.LSE_VALUE=32768
RCC.LSI_VALUE=32000
RCC.MCO1PinFreq_Value=16000000
RCC.PLLM=RCC_PLLM_DIV2
RCC.PLLN=28
RCC.PLLPoutputFreq_Value=168000000
RCC.PLLQoutputFreq_Value=168000000
RCC.PLLRCLKFreq_Value=168000000
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.PWRFreq_Value=168000000
RCC.QSPIFreq_Value=168000000
RCC.RNGFreq_Value=48000000
RCC.SAI1Freq_Value=168000000
RCC.SYSCLKFreq_VALUE=168000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.UART4Freq_Value=168000000
RCC.UART5Freq_Value=168000000
RCC.USART1Freq_Value=168000000
RCC.USART2Freq_Value=168000000
RCC.USART3Freq_Value=168000000
RCC.USBFreq_Value=48000000
RCC.VCOInputFreq_Value=12000000
RCC.VCOOutputFreq_Value=336000000
SH.COMP_DAC12_group.0=DAC1_OUT2,DAC_OUT2
SH.COMP_DAC12_group.ConfNb=1
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_64
SPI1.CLKPolarity=SPI_POLARITY_LOW
SPI1.CalculateBaudRate=2.625 MBits/s
SPI1.DataSize=SPI_DATASIZE_8BIT
SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=VirtualType,Mode,Direction,BaudRatePrescaler,CalculateBaudRate,DataSize,CLKPolarity
SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualType=VM_MASTER
TIM15.IPParameters=Prescaler
TIM15.Prescaler=168-1
TIM3.CounterMode=TIM_COUNTERMODE_DOWN
TIM3.IPParameters=Prescaler,PeriodNoDither,TIM_MasterOutputTrigger,CounterMode
TIM3.PeriodNoDither=2-1
TIM3.Prescaler=84-1
TIM3.TIM_MasterOutputTrigger=TIM_TRGO_UPDATE
TIM6.IPParameters=TIM_MasterOutputTrigger,Prescaler,PeriodNoDither
TIM6.PeriodNoDither=20-1
TIM6.Prescaler=420-1
TIM6.TIM_MasterOutputTrigger=TIM_TRGO_UPDATE
TIM8.IPParameters=PeriodNoDither,Prescaler,TIM_MasterOutputTrigger
TIM8.PeriodNoDither=168-1
TIM8.Prescaler=10-1
TIM8.TIM_MasterOutputTrigger=TIM_TRGO_UPDATE
USART1.IPParameters=VirtualMode-Asynchronous,VirtualMode-Hardware Flow Control (RS485)
USART1.VirtualMode-Asynchronous=VM_ASYNC
USART1.VirtualMode-Hardware\ Flow\ Control\ (RS485)=VM_ASYNC
USART2.IPParameters=VirtualMode-Asynchronous
USART2.VirtualMode-Asynchronous=VM_ASYNC
USART3.BaudRate=115200
USART3.DataInvertParam=ADVFEATURE_DATAINV_DISABLE
USART3.IPParameters=VirtualMode-Asynchronous,DataInvertParam,BaudRate,TxPinLevelInvertParam,RxPinLevelInvertParam
USART3.RxPinLevelInvertParam=ADVFEATURE_RXINV_DISABLE
USART3.TxPinLevelInvertParam=ADVFEATURE_TXINV_DISABLE
USART3.VirtualMode-Asynchronous=VM_ASYNC
VP_CRC_VS_CRC.Mode=CRC_Activate
VP_CRC_VS_CRC.Signal=CRC_VS_CRC
VP_DAC3_VS_DACI2.Mode=DAC_OUT2_Int
VP_DAC3_VS_DACI2.Signal=DAC3_VS_DACI2
VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals
VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals
VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
VP_TIM15_VS_ClockSourceINT.Mode=Internal
VP_TIM15_VS_ClockSourceINT.Signal=TIM15_VS_ClockSourceINT
VP_TIM3_VS_ClockSourceINT.Mode=Internal
VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
VP_TIM6_VS_ClockSourceINT.Mode=Enable_Timer
VP_TIM6_VS_ClockSourceINT.Signal=TIM6_VS_ClockSourceINT
VP_TIM8_VS_ClockSourceINT.Mode=Internal
VP_TIM8_VS_ClockSourceINT.Signal=TIM8_VS_ClockSourceINT
board=custom
isbadioc=false
2025-07-29 6:20 AM
Pins are initialized in HAL_FDCAN_MspInit, as expected.
2025-07-29 6:21 AM
Why do you think AF9 is correct for these pins? It should be AF11.
2025-07-29 9:05 AM