关于STM32 TIM霍尔传感器的用法

2019-12-12 18:11发布

尝试编写程序接受两路霍尔传感器输入用于测量电机转速。
参考手册P186 TIM1/TIM8与霍尔传感器借口一章。写了一下程序用于初始化TIM4作为霍尔传感器的接收。

void HALL_Init()
{
        TIM4->CR2|=1<<7                //设置CR2第7位为1
        TIM4->ARR|=0xFFFF  //设置ARR为最大值
        TIM4->CCMR1&=0xFFFC          //写ccmr寄存器0,1位为01         CC1S=01
        TIM4->CCMR1|=0x0003   
        TIM4->CCMR1|=7<<12;        //置oc2m=111
        TIM4->CCMR1&=0xFCFF        //置CC2S为00
        TIM4->CR2&=0xFF8F;        //置CR2 MMS=101;
        TIM4->CR2|=5<<4;
}


入正题:
有几个问题希望大大们能解救:
1、这种利用霍尔传感器反馈产生PWM的方法,一定要用TIM1或者TIM8产生PWM波吗?
2、手册中有以下描述
未命名.jpg (63.71 KB, 下载次数: 1) 下载附件 2012-5-10 21:56 上传
这段要怎么理解呢?
如果第一问的答案是肯定的,是不是只要我根据我上面的程序启动TIM4后,在按照图上的说明配置TIM1,每当TIM4发来的正脉冲到达时,就可以产生一个COM中断呢?
3、如果一二问是肯定的,这里面没有说明霍尔传感器输入多少个脉冲才会产生一个COM中断,比如说外部是两个相差180度的霍尔传感器,如果转轴上只有一个磁钢,会造成多少个COM中断呢?
4、如果有相关的程序能够分享的希望能帮助一下,谢谢! ylh1239@foxmail.com
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。