-
测量
PWM
输出的高
电平脉宽
//
定时器
5
通道
1
< br>输入捕获配置
//arr
:自动重装值
//psc
:时钟预分频数
void TIM5_Cap_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<3;
//TIM5
时钟使能
RCC->APB2ENR|=1<<2;
//<
/p>
使能
PORTA
时钟
GPIOA->CRL&=0XFFFFFFF0;
//PA0
清除之前设置
GPIOA->CRL|=0X00000008;
//PA0
输入
GPIOA->ODR|=0<<0;
//PA0
下拉
TIM5->ARR=arr;
//
设定计数器自动重装值
TIM5->PSC=psc;
//
预分频器
TIM5->CCMR1|=1<<0;
//CC1S=01
选择输入端
IC1
< br>映射到
TI1
上
TIM5->CCMR1|=0<<4;
//IC1F=0000
配置输入滤波器
不滤波
TIM5->CCMR1|=0<<10;
//IC2PS=00
配置输入分
频
,
不分频
TIM5->CCER|=0<<1;
//CC1P=0
上升沿捕获
TIM5->CCER|=1<<0;
//CC1E=1
允许捕获计数器的值到捕获寄存器中
TIM5->DIER|=1<<1;
//
允许捕获中断
TIM5->DIER|=1<<0;
//
允许更新中断
TIM5->CR1|=0x01;
//
使能定时器
2
MY_NVIC_Init(2,0,TIM5_IRQCh
annel,2);//
抢占
2
,子优
先级
0
,组
2
}
//
捕获状态
//[7]:0,
没有成功的捕获
;1,
成功捕获到一次
.
//[6]:0,
还没捕获到高电平
;1,
已经捕获到高电平了
.
//[5:0]:
捕获高电平后溢出的次数
p>
u8
TIM5CH1_CAPTURE_STA=0;
//
输入捕获状态
u16
TIM5CH1_CAPTURE_V
AL;
/
/
输入捕获值
//
定时器
5
中断服务程
序
void TIM5_IRQHandler(void)
{
u16 tsr;
tsr=TIM5->SR;
<
/p>
if((TIM5CH1_CAPTURE_STA&0X80)==0)//
还未成功捕获
{
if(tsr&0X01)//
溢出
-
-
-
-
-
-
-
-
-
上一篇:cad口令(CAD password)
下一篇:冬天描写寒冷的词语