|
我想输出 PWM 信号,并通过电位器改变其频率。我在 PWM 输出端接了一颗 LED,现象是 LED 只闪烁几次之后就彻底熄灭。目前我没有示波器来观测波形。 硬件使用 STM32F401CCU6 Black Pill 开发板。 以下是我的代码: / USER CODE BEGIN PD / define POT_MAX 4095define FREQ_MIN 6 // 1000/6=167Hzdefine FREQ_MAX 1000 // 1000/1000=1Hzdefine CLOCK_FREQ 84000000/ USER CODE END PD / / Private variables ---------------------------------------------------------/ ADC_HandleTypeDef hadc1; TIM_HandleTypeDef htim1; / Private function prototypes -----------------------------------------------/ void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_ADC1_Init(void); static void MX_TIM1_Init(void); / Private user code ---------------------------------------------------------/ / USER CODE BEGIN 0 / uint32_t adc_val; uint32_t freq; void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef hadc) { adc_val = HAL_ADC_GetValue(&hadc1); freq = (adc_val(FREQ_MAX-FREQ_MIN)/POT_MAX)+FREQ_MIN-1; TIM1->ARR = freq; HAL_ADC_Start_IT (&hadc1); } / USER CODE END 0 / /**
/ MCU Configuration--------------------------------------------------------/ HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_ADC1_Init(); MX_TIM1_Init(); / USER CODE BEGIN 2 / HAL_ADC_Start_IT (&hadc1); HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); TIM1->CCR1 = 30; / USER CODE END 2 / / Infinite loop / / USER CODE BEGIN WHILE / while (1) { / USER CODE END WHILE / / USER CODE BEGIN 3 / } / USER CODE END 3 / |
stm32H723 tim23和tim24是不是不支持中间对齐模式?
stm32H723 tim23和tim24 中间对齐模式无效
stm32H723 tim1和tim23 tim24同步的问题
stm32n657的TIM8定时器
向 “HAL_RTC_GetTime” 函数传递的第一个参数出现指针类型不兼容警告
无法从编码器模式下的 TIM1 获取计数值
定时器输出PWM控制电机的问题
STM32U575的LPTIM中断问题
TIM11,TIM13失效
STM32 用主从定时器方式实现DSP QEP模块的QCTMR功能,异常
微信公众号
手机版
没有示波器,建议至少要配一个模拟的逻辑分析仪。此类类似优盘的逻辑分析仪连接在电脑上使用,可接八路信号,观察时序变化很方便。网购价格也不贵,通常在20~30元左右。