stm32 PWM输入捕获(7)
void Capture_Init(u16 arr,u16 psc) {
//此部分需手动修改 IO口设置 RCC->APB2ENR|=1<<0; //
RCC->APB1ENR|=1<<0; //TIM2 时钟使能 RCC->APB2ENR|=1<<2; //使能PORTA时钟
TIM2->ARR=arr; //设定计数器自动重装值//刚好1ms TIM2->PSC=psc; //预分频器,
GPIOA->CRL&=0XFFFFFFF0;//PA0 输出 GPIOA->CRL|=0X00000004;//复用功能输出 GPIOA->ODR|=1<<0;//PA0 上拉
TIM2->SMCR|=0x00D4;
//TIM2->SMCR|= 1<<5; //MSM=1 主/从模式 //TIM2->SMCR|= 5<<4; //TS=101 触发选择 //TIM2->SMCR|= 4<<0; //SMS=100 复位模式
TIM2->CCMR1|=1<<0;//CC1S=01 选择输入端 TIM2->CCMR1|=3<<4; //IC1F=0011配置输入滤波器
TIM2->CCER|=0<<1; //CC1P=0选择有效转换边沿 上升沿有效 TIM2->CCMR1|=0<<2; //IC1PS=00 配置输入分频
TIM2->CCER|=1<<0; //CC1E=1 允许捕获计数器的值到捕获寄存器中
TIM2->CCMR1|=2<<8;//CC2S=10 选择输入端
TIM2->CCER|=1<<5; //CC2P=1选择有交转换边沿 下降沿有效 TIM2->CCER|=1<<4; //CC2E=1 允许捕获计数器的值到捕获寄存器中
TIM2->DIER|=1<<1; //允许更新捕获中断
TIM2->CR1|=0x01; //使能定时器2
MY_NVIC_Init(1,3,TIM2_IRQChannel,2);//抢占1,子优先级3,组2 }
//定时器2中断服务程序
void TIM2_IRQHandler(void) {
IC1Value = TIM2->CCR1;//读取CCR1也可以清CC1IF标志位 IC2Value = TIM2->CCR2;//读取CCR1也可以清CC2IF标志位 TIM2->SR&=~(1<<1);//清除中断标志位 }
//===============================================================
还有上面Capture_Init(2000,72-1); 里面的参数与PWM_Init(1000,72-1); 里面的参数有什么具体关系呢? 谢谢!
关系是:Capture_Init(2000,72-1)中的2000是用于计数的,就是触发后到下一次触发的计数,如果捕获的PWM信号周期太长20000不够会有溢出的。PWM_Init(1000,72-1); 中的1000是重载,当设置72-1时,分频为1M,重载1000,就是1M/1000=1K。
如果Capture_Init(2000,72-1)设置72-1,说明分频为1M,1M的频率在计数1K的信号那计数器要计数1000次,这个1000次要在Capture_Init(2000,72-1)中的2000内, 如果1000次大于Capture_Init(2000,72-1)中的2000,那就会溢出了。
所以,如果PWM_Init(1000,72-1); 中的1000这个数很大,那Capture_Init(2000,72-1)中的2000要比它大就得了。这样就不会溢出了。
不稳定不确定说明你重载太少了,已经溢出了。你可以改大一点Capture_Init(65536,72-1); 这样可以测几十HZ.
A:这里是定时器输入口1,我是IC1映射到TI1, 所以是从TI1PF1触发的,具体请看PWM输入图表。
B:通道选择请看手册,CC1通道被配置为输入,IC1映射到TI1上 C:输入滤波器请看手册
D:从输入选择了CCR2,通道TI2.
PWM输入模式 库函数例程位置 : STM32F10x_StdPeriph_Lib_V3.3.0\\Project\\STM32F10x_StdPeriph_Examples\\TIM\\PWM_Input 该模式是输入捕获模式的一个特例 例如,你需要测量
输入到TI1上的PWM信号的长度(TIMx_CCR1寄存器)和占空比(TIMx_CCR2寄存器),具体步骤如下(取决于CK_INT的频率和预分频器的值)
● 选择TIMx_CCR1的有效输入:置TIMx_CCMR1寄存器的CC1S=01(选择TI1)。
● 选择TI1FP1的有效极性(用来捕获数据到TIMx_CCR1中和清除计数器):置CC1P=0(上升沿有效)。
● 选择TIMx_CCR2的有效输入:置TIMx_CCMR1寄存器的CC2S=10(选择TI1)。 ● 选择TI1FP2的有效极性(捕获数据到TIMx_CCR2):置CC2P=1(下降沿有效)。 ● 选择有效的触发输入信号:置TIMx_SMCR寄存器中的TS=101(选择TI1FP1)。 ● 配置从模式控制器为复位模式:置TIMx_SMCR中的SMS=100。 ● 使能捕获:置TIMx_CCER寄存器中CC1E=1且CC2E=1。
相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




