现在用STM32F103R8T6设计一个产品,已经实现电网电压、频率测量、显示、通讯等功能,但是AD采样的频率是固定以50Hz电网频率来定的,现在想要实现频率跟踪,即通过测量到的电网频率,来动态调整AD采样的分频配置。 在采样频率固定的时候,总共开了7个中断,1-4个定时器中断、AD采样中断、DMA中断和USART中断。能够正常跑起来。 AD采样为1个电压波形采集32个点。采样使用的是DMA方式。 现在频率跟踪的思路是:TIM1中断用于频率捕捉,根据捕捉到的频率值来计算AD采样定时器TIM2中的TIM_Period值,然后将每次计算得到的TIM_Period值来初始化TIM2,从而调整AD采样间隔,以保证在1个周期内我能捕捉到完整的波形。 现在我是这样做的,在主程序初始化时,先开TIM1定时器,在TIM1中断中测量频率值,然后在主程序根据测量到的频率值来计算TIM2的TIM_Period,并对TIM2进行初始化,开中断。 问题就是中断打架,程序不能正常运行。 请高手帮忙分析一下,问题出在哪里? |
RE:高手帮忙
你通过TIM1测量到频率后,直接在TIM2的中断中计算出采样间隔,然后赋给TIM_Period,然后根据这个间隔来采样。
RE:高手帮忙
RE:高手帮忙
RE:高手帮忙
申请样品有意者请电:0755-83312947QQ:648278784
实用型:
STM32F101C4T6.STM32F101C6T6.STM32F101C8T6. STM32F101CBT6. STM32F101R4T6.
STM32F101R6T6. STM32F101R8T6. STM32F101RBT6. STM32F101RCT6. STM32F101RDT6
STM32F101RET6. STM32F101T4U6. STM32F101T6U6. STM32F101C8T6. STM32F101CBT6
STM32F101V8T6. STM32F101VBT6. STM32F101VCT6.STM32F101VDT6.STM32F101VET6
STM32F101ZCT6. STM32F101ZDT6. STM32F101ZET6.
增强型
STM32F103C4T6.STM32F103C6T6.STM32F103C8T6. STM32F103CBT6. STM32F103R4T6.
STM32F103R6T6. STM32F103R8T6. STM32F103RBT6. STM32F103RCT6. STM32F103RDT6
STM32F103RET6. STM32F103T4U6. STM32F103T6U6. STM32F103C8T6. STM32F103CBT6
STM32F103V8T6. STM32F103VBT6. STM32F103VCT6.STM32F103VDT6.STM32F103VET6
STM32F103ZCT6. STM32F103ZDT6. STM32F103ZET6.
互连型
以太网 + USB OTG
STM32F107VCT6/7.STM32F107VCH6/7.STM32F107RCT6/7.
STM32F107VBT6/7 STM32F107VBH6/7.STM32F107RBT6/7
USB OTG
STM32F105VCT6/7.STM32F105RCT6/7.STM32F105VBT6/7.
STM32F105VBH6/7.STM32F105RBT6/7.STM32F105V8H6/7.
STM32F105R8T6/7
RE:高手帮忙
RE:高手帮忙
RE:高手帮忙