广东湘恒智能科技有限公司
主营产品: 西门子PLC代理商,plc变频器,伺服电机,人机界面,触摸屏,线缆,DP接头
SIEMENS山西省朔州市 西门子代理商——西门子华北一级总代理

3.2 捕获/比较使能寄存器CCER

我们要用到这个寄存器的最低 2 位, CC1E 和 CC1P。

位 15、11、7、3  CCxNP:捕获 /比较x 输出极性 (Capture/Comparex output Polarity)。

CCx 通道配置为输出:CCxNP 必须保持清零。

CCx 通道配置为输入:此位与 CCxP 配合使用,用以定义 TI1FP1/TI2FP1 的极性。请参见 CCxP 说明。

位 14、10、6、2  保留,必须保持复位值。

位 13、9、5、1  CCxP:捕获 /比较x 输出极性 (Capture/Comparex output Polarity)。

00:非反相/上升沿触发电路对 TIxFP1 上升沿敏感 (在复位模式、外部时钟模式或触发模式下执行捕获或触发操作), TIxFP1 未反相 (在门控模式或编码器模式下执行触发操作)。

01:反相/下降沿触发电路对 TIxFP1 下降沿敏感 (在复位模式、外部时钟模式或触发模式下执行捕获或触发操作), TIxFP1 反相 (在门控模式或编码器模式下执行触发操作)。

10:保留,不使用此配置。

11:非反相/上升沿和下降沿均触发电路对 TIxFP1 上升沿和下降沿都敏感(在复位模式、外部时钟模式或触发模式下执行捕获或触发操作),TIxFP1 未反相(在门控模式下执行触发操作)。编码器模式下不得使用此配置。

0:OCx 高电平有效

1:OCx低电平有效

CCx 通道配置为输出

CCx 通道配置为输入

CCxNP/CCxP 位可针对触发或捕获操作选择 TI1FP1 和 TI2FP1 的极性。

位 12、8、4、0  CCxE:捕获 /比较 x 输出使能 (Capture/Comparex output enable)。

0:禁止捕获

1:使能捕获

0:关闭––OCx 未激活

1:开启––在相应输出引脚上输出 OCx信号

CCx 通道配置为输出

CCx 通道配置为输入

此位决定了是否可以实际将计数器值捕获到输入捕获/比较寄存器 1 (TIMx_CCR1) 中。

3.3 DMA/中断使能寄存器DIER

我们需要用到中断来处理捕获数据,所以必须开启通道 1 的捕获比较中断,即 CC1IE 设置为 1 。

位 15、13、7、5 保留,必须保持复位值。

位 14 TDE:触发 DMA 请求使能 (Trigger DMA request enable)

位 12~位9 CCxDE:捕获/比较x DMA 请求使能 (Capture/Compare 1 DMA request enable)

位 8 UDE:更新 DMA 请求使能 (Update DMA request enable)

位 6 TIE:触发信号(TRGI)中断使能 (Trigger interrupt enable)

位 4~位1 CCxIE:捕获/比较x 中断使能 (Capture/Compare 1 interrupt enable)

位 0 UIE:更新中断使能 (Update interrupt enable)

4编程

4.1 定时器初始化4.1.1 GPIO初始化

这里用到的是定时器5的通道1,根据STM32F407的数据手册“3 Pinouts and pin description”中的“Table 9. Alternate function mapping”复用引脚说明表,可以看到定时器5通道1对应的引脚位A0,所以使用A0作为信号的输入引脚。

因此程序中对A0引脚可以这样配置,注意一定要配置引脚的复用功能













GPIO_InitTypeDef GPIO_InitStructure;            /*GPIO 结构体*/RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);   //使能PORTA时钟
/*输入信号的GPIO初始化*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;           //GPIOA0GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;        /*复用功能*/GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;  //速度100MHzGPIO_InitStructure.GPIO_OType = GPIO_OType_PP;      //推挽复用输出GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;      /*下拉*/GPIO_Init(GPIOA,&GPIO_InitStructure);               //初始化PA0
GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5); //PA0复用位定时器5


展开全文
相关产品
拨打电话 微信咨询 发送询价