我也遇到了,解决不了
遇到的问题是:用一个灯监视TIM2的CC2,开启TIM2后可在示波器上清晰地看到方波,断点跟踪也可看到寄存器的CC2IF变化,也设置了AD用TIM2_CC2启动,但是就是启动不了ADC,ADC1寄存器的STRT位一直不变化!但是只要执行一下ADC_ExternalTrigConvCmd(ADC1, ENABLE); ADC就立即触发,根本不管TIM2的CC2有无变化!我试验了好多方法,一直是这样,如果在DMA的中断里加一条ADC_ExternalTrigConvCmd(ADC1, ENABLE);,芯片就不停的转换--DMA--DMA TC1中断--启动ADC!如果不加这条指令,仅在CONFIG过程中这条指令处触发一次,能进DMA中断,在按一下F5,就再也进不了中断了,因为ADC不会有EOC来触发DMA了. 折腾了两天,挂了白旗.不再使用DMA的中断,而是用TIM2的CC2中断,进去后立即软件触发ADC,再等待DMA的TC1,再进行数据处理.好在仅多耗费12US,我的采样频率是1200HZ,每次采样间隔833US,多耗费这点没什么. 经测试,做24点的F算法,求出SIN 和COS 部分后再乘方相加后开方算出有效值,在RAM中运行毫时28US,FLASH中运行未测试,但是应不超过50US,计算性能远超过部分DSP,推荐大家使用! |
|