stm32 PWM输入捕获(6)
GPIO_Init(GPIOA, &GPIO_InitStructure);
7:注意打开相应外设的时钟
RCC_APB1PeriphClock: TIM2,TIM4
RCC_APB2PeriphClock: GPIOx
RCC_AHBPeriphClock: DMA
8:关于调试过程中的MDK的使用
A:打开箭头指向的两项
B:在Address里面分别输入
0x40000038,0x4000003c,0x40000040以及0x40000838
就可以看到TIM2_CRR1,TIM2_CRR2,TIM2_CRR3以及TIM4_CRR2中的值也就是各个通道捕捉的值value
因为捕获的数十经过PSC10分频的所以用72MHZ/10*value就可以得到测量信号的频率
C:我们可以在这个框里点F2输入我们定义的缓冲区的名字
TIM2_Capture_value
TIM2_Capture_value1
TIM2_Capture_value2
TIM4_Capture_value
就可以看到DMA的各个通道传输到存储器区的数据,这个数据是跟步骤B里面的数据是一致的。缓冲区的大小为16,信号的频率在一段时间内是不变的那么这16个数就是一样的
同样用72MHZ/10*value就可以得到测量信号的频率
你几个问题点没有把握好,
一个是映射, 一个是主输入, 一个是从输入,
只有从输入才有第一个跳变复位,第二个跳变存在CCR2或者CCR1中,
主输入可以先CCR1,也可能选择CCR2,这里要从输入配合,他们不能同用一个CCR. 这几个问题你能搞清楚了,就很清楚了。 2008.10.13 15:05
刚刚开始做定时器输入捕获的时候在这个论坛上找了好久,都没有人分享,也有很多人问,无奈自己动手写了。花了一天的时间,这个东西真的不好写了,对比了库的例子,仿真,等。可以说付出了很多。现在完成了和大家分享。希望大家多多支持。这个程序是在定时器输入捕获的基础上看手册完成的,
程序说明:1、程序中定时器4的PB6用于输出频率为1K,占空比为50%的PWM信号。 2、定时器2的PA0用于输入捕获,当程序下到板子上,只有两个脚连在一起才会发生捕获。
3、串口用于发送捕获的值到PC机上。
4、定时器2的CCR1存PWM信号的频率,CCR2存高电平时间。
这里声明一下,如果你要捕获的PWM信号不在ARR,PSC计算的范围内,请自己先计算再使用本程序。
#include \#include \
#include \//延时子函数 #include \
u16 IC1Value; u16 IC2Value; u16 DutyCycle; u16 Frequency;
void PWM_Init(u16 arr,u16 psc); void Capture_Init(u16 arr,u16 psc); int main(void) {
Stm32_Clock_Init(9); //系统时钟设置 delay_init(72);//延时函数初始化 uart_init(72,9600);
PWM_Init(1000,72-1);//不分频。PWM频率=72000/1440=5Khz Capture_Init(2000,72-1);
while(1) {
Frequency = 1000000/IC1Value;
DutyCycle = (IC2Value*100)/IC1Value;//占空比=(IC2Value/IC1Value)*100; printf(\= %d\\r\\n\printf(\= %d\\r\\n\printf(\} }
//PWM输出初始化 //arr:自动重装值 //psc:时钟预分频数
void PWM_Init(u16 arr,u16 psc) {
//此部分需手动修改 IO口设置 RCC->APB2ENR|=1<<0; //
RCC->APB1ENR|=1<<2; //TIM4 时钟使能 RCC->APB2ENR|=1<<3; //使能PORTB时钟
GPIOB->CRL&=0XF0FFFFFF;//PB6 输出 GPIOB->CRL|=0X0B000000;//复用功能输出 GPIOB->ODR|=1<<6;//PB6 上拉
TIM4->ARR=arr;//设定计数器自动重装值 TIM4->PSC=psc;//预分频器不分频
TIM4->CCMR1|=7<<4; //CH1 PWM2模式 TIM4->CCMR1|=1<<3; //CH1 预装载使能 TIM4->CCER|=1<<0; //OC1 输出使能 TIM4->CR1=0x0080; //ARPE使能
TIM4->CR1|=0x01; //使能定时器 3
TIM4->CCR1 = 500;//占空比初值 = 1440*50% = 720 }
…… 此处隐藏:42字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




