你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

HAL_TIM_IC_Start_DMA的回调函数是HAL_TIM_IC_CaptureCpltCallback吗?为什么进不去?

[复制链接]
1564553256@qq.c 提问时间:2025-9-19 18:07 / 未解决

image.pngimage.png

include "freq_meter.h"

include "ws2812b.h"

uint16_t Capture_Raise[IC_BufSize] = {0x0000}; //CH1的DMA缓冲区,用于存放上升沿捕获数据 uint16_t Capture_Fall[IC_BufSize] = {0x0000}; //CH2的DMA缓冲区,用于存放下降沿捕获数据

uint16_t Avg_Raise = 0x0000; uint16_t Avg_Fall = 0x0000;

float Freq_Capture_Freq = 0.0; //所测信号频率 float Freq_Capture_Duty = 0.0; //所测信号占空比 extern WS2812B_OBJ_T ESHL_StateLed;

uint8_t i=0; void Freq_Meter_Init(void) { //开始TIM2CH1的DMA传输 HAL_TIM_IC_Start_DMA(&PWM_In_Timer, TIM_CHANNEL_1, (uint32_t)Capture_Fall, IC_BufSize); //还原TIM2状态,然后开始TIM2CH2的DMA传输 PWM_In_Timer.State = HAL_TIM_STATE_READY; HAL_TIM_IC_Start_DMA(&PWM_In_Timer, TIM_CHANNEL_2, (uint32_t)Capture_Raise, IC_BufSize); }

void Freq_Meter_DeInit(void) { HAL_TIM_IC_Stop_DMA(&PWM_In_Timer, TIM_CHANNEL_1); HAL_TIM_IC_Stop_DMA(&PWM_In_Timer, TIM_CHANNEL_2); } void Freq_Calc(void) { Avg_Raise = 0; Avg_Fall = 0;

//取平均值 for(uint16_t i = 0; i < IC_BufSize; i++) { Avg_Raise += Capture_Raise[i]; Avg_Fall += Capture_Fall[i]; } Avg_Raise /= IC_BufSize; Avg_Fall /= IC_BufSize;

//计算频率及占空比 if(Avg_Raise != 0) { Freq_Capture_Freq = (float)TIM_Clock / (float)((TIM_PSC + 1) * Avg_Raise); Freq_Capture_Duty = (float)Avg_Fall / (float)Avg_Raise; } } // 添加全局变量跟踪DMA传输状态 uint8_t dma_ch1_complete = 0; uint8_t dma_ch2_complete = 0;

// DMA传输完成回调 void HAL_TIM_IC_CaptureCpltCallback(TIM_HandleTypeDef *htim) {

i = (i + 1) % 255; if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_1) { dma_ch1_complete = 1; } else if (htim->Channel == HAL_TIM_ACTIVE_CHANNEL_2) { dma_ch2_complete = 1; }

// 两个通道都完成时才计算 if (dma_ch1_complete && dma_ch2_complete) { Freq_Calc(); dma_ch1_complete = 0; dma_ch2_complete = 0;

    //  // WS2812控制
    WS2812_Set(&ESHL_StateLed, 0, i, 0, 0);
    Freq_Meter_Init();

} }

收藏 评论0 发布时间:2025-9-19 18:07

举报

0个回答

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版