CubeMX加载X-CUBE-AI库以后 再新建工程进不去mcu选择界面
NUCLEO G474RE无法运行程序
电子方案大会深圳站-ST展台
stm32cubemx的mode and configuration界面里的mode界面加载不出来,请问是什么问题?
NUCLEO-G474RE这个开发板的例程在哪儿下载啊,不知道如和用他的usb和pc串口通信
STM32G030死机问题
stm32cubeMx生成stm32H743IIT6 cmake工程时全局变量自动定义到DTCM段
CubeMX 生成的 STM32H7 CMake 工程打开串口 DMA 无法正常发送数据,如何解决?
STM32G431 用MCSDK5.4.8 进行PMSM永磁同步电机FOC控制,转速上升到某一值(3500rpm)无法继续上升,上不去
SDIO读取TF卡,1bit模式正常,4bit模式无法读取
微信公众号
手机版
/ USER CODE BEGIN Header / /**
@file hrtim.c
@brief This file provides code for the configuration
of the HRTIM instances.
@attention
Copyright (c) 2026 STMicroelectronics.
All rights reserved.
This software is licensed under terms that can be found in the LICENSE file
in the root directory of this software component.
If no LICENSE file comes with this software, it is provided AS-IS.
/ / USER CODE END Header / / Includes ------------------------------------------------------------------*/
include "hrtim.h"
/ USER CODE BEGIN 0 /
/ USER CODE END 0 /
HRTIM_HandleTypeDef hhrtim1;
/ HRTIM1 init function / void MX_HRTIM1_Init(void) {
/ USER CODE BEGIN HRTIM1_Init 0 /
/ USER CODE END HRTIM1_Init 0 /
HRTIM_EventCfgTypeDef pEventCfg = {0}; HRTIM_FaultBlankingCfgTypeDef pFaultBlkCfg = {0}; HRTIM_FaultCfgTypeDef pFaultCfg = {0}; HRTIM_TimeBaseCfgTypeDef pTimeBaseCfg = {0}; HRTIM_TimerCfgTypeDef pTimerCfg = {0}; HRTIM_TimerCtlTypeDef pTimerCtl = {0}; HRTIM_CompareCfgTypeDef pCompareCfg = {0}; HRTIM_DeadTimeCfgTypeDef pDeadTimeCfg = {0}; HRTIM_OutputCfgTypeDef pOutputCfg = {0};
/ USER CODE BEGIN HRTIM1_Init 1 /
/ USER CODE END HRTIM1_Init 1 / hhrtim1.Instance = HRTIM1; hhrtim1.Init.HRTIMInterruptResquests = HRTIM_IT_NONE; hhrtim1.Init.SyncOptions = HRTIM_SYNCOPTION_NONE;
if (HAL_HRTIM_Init(&hhrtim1) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_DLLCalibrationStart(&hhrtim1, HRTIM_CALIBRATIONRATE_3) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_PollForDLLCalibration(&hhrtim1, 10) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_EventPrescalerConfig(&hhrtim1, HRTIM_EVENTPRESCALER_DIV1) != HAL_OK) { Error_Handler(); }
pEventCfg.Source = HRTIM_EEV1SRC_COMP2_OUT; pEventCfg.Polarity = HRTIM_EVENTPOLARITY_HIGH; pEventCfg.Sensitivity = HRTIM_EVENTSENSITIVITY_LEVEL; pEventCfg.FastMode = HRTIM_EVENTFASTMODE_DISABLE;
if (HAL_HRTIM_EventConfig(&hhrtim1, HRTIM_EVENT_1, &pEventCfg) != HAL_OK) { Error_Handler(); }
pEventCfg.Source = HRTIM_EEV4SRC_COMP1_OUT;
if (HAL_HRTIM_EventConfig(&hhrtim1, HRTIM_EVENT_4, &pEventCfg) != HAL_OK) { Error_Handler(); }
pEventCfg.Source = HRTIM_EEV10SRC_GPIO; pEventCfg.Filter = HRTIM_EVENTFILTER_NONE;
if (HAL_HRTIM_EventConfig(&hhrtim1, HRTIM_EVENT_10, &pEventCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_FaultPrescalerConfig(&hhrtim1, HRTIM_FAULTPRESCALER_DIV1) != HAL_OK) { Error_Handler(); }
pFaultBlkCfg.Threshold = 0; pFaultBlkCfg.ResetMode = HRTIM_FAULTCOUNTERRST_UNCONDITIONAL; pFaultBlkCfg.BlankingSource = HRTIM_FAULTBLANKINGMODE_RSTALIGNED;
if (HAL_HRTIM_FaultCounterConfig(&hhrtim1, HRTIM_FAULT_5, &pFaultBlkCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_FaultBlankingConfigAndEnable(&hhrtim1, HRTIM_FAULT_5, &pFaultBlkCfg) != HAL_OK) { Error_Handler(); }
pFaultCfg.Source = HRTIM_FAULTSOURCE_DIGITALINPUT; pFaultCfg.Polarity = HRTIM_FAULTPOLARITY_HIGH; pFaultCfg.Filter = HRTIM_FAULTFILTER_NONE; pFaultCfg.Lock = HRTIM_FAULTLOCK_READWRITE;
if (HAL_HRTIM_FaultConfig(&hhrtim1, HRTIM_FAULT_5, &pFaultCfg) != HAL_OK) { Error_Handler(); }
HAL_HRTIM_FaultModeCtl(&hhrtim1, HRTIM_FAULT_5, HRTIM_FAULTMODECTL_ENABLED); pTimeBaseCfg.Period = 5000; pTimeBaseCfg.RepetitionCounter = 0x00; pTimeBaseCfg.PrescalerRatio = HRTIM_PRESCALERRATIO_MUL2; pTimeBaseCfg.Mode = HRTIM_MODE_CONTINUOUS;
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimeBaseCfg) != HAL_OK) { Error_Handler(); }
pTimerCfg.InterruptRequests = HRTIM_MASTER_IT_NONE; pTimerCfg.DMARequests = HRTIM_MASTER_DMA_NONE; pTimerCfg.DMASrcAddress = 0x0000; pTimerCfg.DMADstAddress = 0x0000; pTimerCfg.DMASize = 0x1; pTimerCfg.HalfModeEnable = HRTIM_HALFMODE_DISABLED; pTimerCfg.InterleavedMode = HRTIM_INTERLEAVED_MODE_QUAD; pTimerCfg.StartOnSync = HRTIM_SYNCSTART_DISABLED; pTimerCfg.ResetOnSync = HRTIM_SYNCRESET_DISABLED; pTimerCfg.DACSynchro = HRTIM_DACSYNC_NONE; pTimerCfg.PreloadEnable = HRTIM_PRELOAD_DISABLED; pTimerCfg.UpdateGating = HRTIM_UPDATEGATING_INDEPENDENT; pTimerCfg.BurstMode = HRTIM_TIMERBURSTMODE_MAINTAINCLOCK; pTimerCfg.RepetitionUpdate = HRTIM_UPDATEONREPETITION_DISABLED; pTimerCfg.ReSyncUpdate = HRTIM_TIMERESYNC_UPDATE_UNCONDITIONAL;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, &pTimerCfg) != HAL_OK) { Error_Handler(); }
pCompareCfg.CompareValue = 4999;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_MASTER, HRTIM_COMPAREUNIT_4, &pCompareCfg) != HAL_OK) { Error_Handler(); }
pTimeBaseCfg.Period = 20000;
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimeBaseCfg) != HAL_OK) { Error_Handler(); }
/------------------ 配置HRTIM TRG2用于ADC触发 ------------------/ /**
if (HAL_HRTIM_ADCTriggerConfig(&hhrtim1, HRTIM_ADCTRIGGER_2, &pAdcTrigCfg) != HAL_OK) { Error_Handler(); } // if (HAL_HRTIM_ADCPostScalerConfig(&hhrtim1, HRTIM_ADCTRIGGER_2, 0x0) != HAL_OK) // { // Error_Handler(); // }
pAdcTrigCfg.UpdateSource = HRTIM_ADCTRIGGERUPDATE_MASTER; pAdcTrigCfg.Trigger = HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP2|HRTIM_ADCTRIGGEREVENT24_TIMERC_CMP4 |HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP2|HRTIM_ADCTRIGGEREVENT24_TIMERD_CMP4;
if (HAL_HRTIM_ADCTriggerConfig(&hhrtim1, HRTIM_ADCTRIGGER_4, &pAdcTrigCfg) != HAL_OK) { Error_Handler(); } // if (HAL_HRTIM_ADCPostScalerConfig(&hhrtim1, HRTIM_ADCTRIGGER_4, 0x0) != HAL_OK) // { // Error_Handler(); // }
pTimerCtl.UpDownMode = HRTIM_TIMERUPDOWNMODE_UP; pTimerCtl.GreaterCMP1 = HRTIM_TIMERGTCMP1_EQUAL; pTimerCtl.DualChannelDacEnable = HRTIM_TIMER_DCDE_DISABLED;
if (HAL_HRTIM_WaveformTimerControl(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimerCtl) != HAL_OK) { Error_Handler(); }
pTimerCfg.InterruptRequests = HRTIM_TIM_IT_NONE; pTimerCfg.DMARequests = HRTIM_TIM_DMA_NONE; pTimerCfg.InterleavedMode = HRTIM_INTERLEAVED_MODE_DISABLED; pTimerCfg.PreloadEnable = HRTIM_PRELOAD_ENABLED; pTimerCfg.RepetitionUpdate = HRTIM_UPDATEONREPETITION_ENABLED; pTimerCfg.PushPull = HRTIM_TIMPUSHPULLMODE_DISABLED; pTimerCfg.FaultEnable = HRTIM_TIMFAULTENABLE_NONE; pTimerCfg.FaultLock = HRTIM_TIMFAULTLOCK_READWRITE; pTimerCfg.DeadTimeInsertion = HRTIM_TIMDEADTIMEINSERTION_DISABLED; pTimerCfg.DelayedProtectionMode = HRTIM_TIMER_A_B_C_DELAYEDPROTECTION_DISABLED; pTimerCfg.UpdateTrigger = HRTIM_TIMUPDATETRIGGER_NONE; pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_MASTER_PER; pTimerCfg.ResetUpdate = HRTIM_TIMUPDATEONRESET_ENABLED;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pTimerCfg) != HAL_OK) { Error_Handler(); }
pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_MASTER_CMP1;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimerCfg) != HAL_OK) { Error_Handler(); }
pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_MASTER_CMP2;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, &pTimerCfg) != HAL_OK) { Error_Handler(); }
pTimerCfg.DelayedProtectionMode = HRTIM_TIMER_D_E_DELAYEDPROTECTION_DISABLED; pTimerCfg.ResetTrigger = HRTIM_TIMRESETTRIGGER_MASTER_CMP3;
if (HAL_HRTIM_WaveformTimerConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, &pTimerCfg) != HAL_OK) { Error_Handler(); }
/------------------ 配置A、B、C、D定时器的CMP1 ------------------/ pCompareCfg.CompareValue = 2000;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK) { Error_Handler(); }
/------------------ 配置A、B、C、D定时器的CMP2 (用于ADC触发) ------------------/ /**
*/ pCompareCfg.CompareValue = 200;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK) { Error_Handler(); } pCompareCfg.CompareValue = 5000 / 4 + 200; if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK) { Error_Handler(); } pCompareCfg.CompareValue = 5000 / 4 2 + 200; if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK) { Error_Handler(); } pCompareCfg.CompareValue = 5000 / 4 3 + 200; if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, HRTIM_COMPAREUNIT_2, &pCompareCfg) != HAL_OK) { Error_Handler(); }
pCompareCfg.CompareValue = 400;
if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_COMPAREUNIT_4, &pCompareCfg) != HAL_OK) { Error_Handler(); } pCompareCfg.CompareValue = 5000 / 4 + 400; if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_4, &pCompareCfg) != HAL_OK) { Error_Handler(); } pCompareCfg.CompareValue = 5000 / 4 2 + 400; if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_COMPAREUNIT_4, &pCompareCfg) != HAL_OK) { Error_Handler(); } pCompareCfg.CompareValue = 5000 / 4 3 + 400; if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, HRTIM_COMPAREUNIT_4, &pCompareCfg) != HAL_OK) { Error_Handler(); }
pDeadTimeCfg.Prescaler = HRTIM_TIMDEADTIME_PRESCALERRATIO_DIV1; pDeadTimeCfg.RisingValue = 1; pDeadTimeCfg.RisingSign = HRTIM_TIMDEADTIME_RISINGSIGN_POSITIVE; pDeadTimeCfg.RisingLock = HRTIM_TIMDEADTIME_RISINGLOCK_WRITE; pDeadTimeCfg.RisingSignLock = HRTIM_TIMDEADTIME_RISINGSIGNLOCK_WRITE; pDeadTimeCfg.FallingValue = 1; pDeadTimeCfg.FallingSign = HRTIM_TIMDEADTIME_FALLINGSIGN_POSITIVE; pDeadTimeCfg.FallingLock = HRTIM_TIMDEADTIME_FALLINGLOCK_WRITE; pDeadTimeCfg.FallingSignLock = HRTIM_TIMDEADTIME_FALLINGSIGNLOCK_WRITE;
if (HAL_HRTIM_DeadTimeConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, &pDeadTimeCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_DeadTimeConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pDeadTimeCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_DeadTimeConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, &pDeadTimeCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_DeadTimeConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, &pDeadTimeCfg) != HAL_OK) { Error_Handler(); }
pOutputCfg.Polarity = HRTIM_OUTPUTPOLARITY_HIGH; pOutputCfg.SetSource = HRTIM_OUTPUTSET_MASTERPER; pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_TIMCMP1|HRTIM_OUTPUTSET_EEV_1 |HRTIM_OUTPUTSET_EEV_4; pOutputCfg.IdleMode = HRTIM_OUTPUTIDLEMODE_NONE; pOutputCfg.IdleLevel = HRTIM_OUTPUTIDLELEVEL_INACTIVE; pOutputCfg.FaultLevel = HRTIM_OUTPUTFAULTLEVEL_NONE; pOutputCfg.ChopperModeEnable = HRTIM_OUTPUTCHOPPERMODE_DISABLED; pOutputCfg.BurstModeEntryDelayed = HRTIM_OUTPUTBURSTMODEENTRY_REGULAR;
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA1, &pOutputCfg) != HAL_OK) { Error_Handler(); }
pOutputCfg.SetSource = HRTIM_OUTPUTSET_MASTERCMP1; pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_TIMCMP1;
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB1, &pOutputCfg) != HAL_OK) { Error_Handler(); }
pOutputCfg.SetSource = HRTIM_OUTPUTSET_MASTERCMP2;
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_OUTPUT_TC1, &pOutputCfg) != HAL_OK) { Error_Handler(); }
pOutputCfg.SetSource = HRTIM_OUTPUTSET_MASTERCMP3;
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, HRTIM_OUTPUT_TD1, &pOutputCfg) != HAL_OK) { Error_Handler(); }
pOutputCfg.SetSource = HRTIM_OUTPUTSET_NONE; pOutputCfg.ResetSource = HRTIM_OUTPUTRESET_NONE;
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_A, HRTIM_OUTPUT_TA2, &pOutputCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_OUTPUT_TB2, &pOutputCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_OUTPUT_TC2, &pOutputCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformOutputConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, HRTIM_OUTPUT_TD2, &pOutputCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimeBaseCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformTimerControl(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, &pTimerCtl) != HAL_OK) { Error_Handler(); }
// pCompareCfg.CompareValue = 2000;
// if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_B, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK) // { // Error_Handler(); // }
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, &pTimeBaseCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformTimerControl(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, &pTimerCtl) != HAL_OK) { Error_Handler(); }
// pCompareCfg.CompareValue = 3000;
// if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_C, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK) // { // Error_Handler(); // }
if (HAL_HRTIM_TimeBaseConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, &pTimeBaseCfg) != HAL_OK) { Error_Handler(); }
if (HAL_HRTIM_WaveformTimerControl(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, &pTimerCtl) != HAL_OK) { Error_Handler(); }
// pCompareCfg.CompareValue = 4000;
// if (HAL_HRTIM_WaveformCompareConfig(&hhrtim1, HRTIM_TIMERINDEX_TIMER_D, HRTIM_COMPAREUNIT_1, &pCompareCfg) != HAL_OK) // { // Error_Handler(); // }
/ USER CODE BEGIN HRTIM1_Init 2 /
/ USER CODE END HRTIM1_Init 2 / HAL_HRTIM_MspPostInit(&hhrtim1); }
void HAL_HRTIM_MspInit(HRTIM_HandleTypeDef* hrtimHandle) {
GPIO_InitTypeDef GPIO_InitStruct = {0};
if (hrtimHandle->Instance==HRTIM1) { / USER CODE BEGIN HRTIM1_MspInit 0 /
} }
void HAL_HRTIM_MspPostInit(HRTIM_HandleTypeDef* hrtimHandle) {
GPIO_InitTypeDef GPIO_InitStruct = {0};
if (hrtimHandle->Instance==HRTIM1) { / USER CODE BEGIN HRTIM1_MspPostInit 0 /
} }
void HAL_HRTIM_MspDeInit(HRTIM_HandleTypeDef* hrtimHandle) {
if (hrtimHandle->Instance==HRTIM1) { / USER CODE BEGIN HRTIM1_MspDeInit 0 /
} }
/ USER CODE BEGIN 1 / void HAL_HRTIM_RepetitionEventCallback(HRTIM_HandleTypeDef *hhrtim, uint32_t TimerIdx) { if (TimerIdx == HRTIM_TIMERINDEX_MASTER) {
// HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, GPIO_PIN_RESET); } } / USER CODE END 1 /
这里贴的代码看起来太费劲了。
你到底用到几个ADC模块?要用到4个来自HRTIM的触发事件?
HRTIM参数4个ADC的触发事件倒是可以,而且你都是要用各TIM的CMP2事件。
但没明白你具体想怎么使用?我看你只提到2个ADC模块。能描述详细点吗?
哦
我刚才又看了下,你好像是想每个来自HRTIM的触发事件,包含2个TIM事件触发源。
这个原理上应该是可以的。
G474应该也有内部tim级联adc的配置吧。你描述的太粗糙,建议自己看一下rm看看