OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2330|回复: 2

关于高级定时器8通道3的一些问题

[复制链接]

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2018-1-17
在线时间
11 小时
发表于 2018-3-29 16:15:09 | 显示全部楼层 |阅读模式
2金钱
项目上使用高级定时器8对PWM信号进行接收,由于电路设计的问题,只能使用定时器8的通道3.但是一直不能实现正确的接收,通道1和通道2都没有问题,换成通道3就不行了,麻烦大牛帮忙解答一下,我把中断配置的程序贴在下边,我认为有问题的地方用红色的标出来了,但是我改动这里没有解决问题,麻烦大牛帮忙解决一下,万分感谢
          头文件
#ifndef __BSP_ADVANCETIME_H
#define __BSP_ADVANCETIME_H
#include "stm32f10x.h"

#define            ADVANCE_TIM                   TIM8
#define            ADVANCE_TIM_APBxClock_FUN     RCC_APB2PeriphClockCmd
#define            ADVANCE_TIM_CLK               RCC_APB2Periph_TIM8

#define            ADVANCE_TIM_PERIOD            (3000-1)
#define            ADVANCE_TIM_PSC               (72-1)

#define            ADVANCE_TIM_IRQ               TIM8_CC_IRQn
#define            ADVANCE_TIM_IRQHandler        TIM8_CC_IRQHandler

#define            ADVANCE_TIM_CH3_GPIO_CLK      RCC_APB2Periph_GPIOC
#define            ADVANCE_TIM_CH3_PORT          GPIOC
#define            ADVANCE_TIM_CH3_PIN           GPIO_Pin_8

#define            ADVANCE_TIM_IC3PWM_CHANNEL    TIM_Channel_3

#define Signal_Input  GPIO_ReadInputDataBit(ADVANCE_TIM_CH3_PORT, ADVANCE_TIM_CH3_PIN)


void ADVANCE_TIM_Init(void);
#endif        /* __BSP_ADVANCETIME_H */

                               .c文件的内容


#include "bsp_AdvanceTim.h"


static void ADVANCE_TIM_NVIC_Config(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);               
               
    NVIC_InitStructure.NVIC_IRQChannel = ADVANCE_TIM_IRQ;        
               
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;         
       
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;       
       
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
       
    NVIC_Init(&NVIC_InitStructure);
}

static void ADVANCE_TIM_GPIO_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

        RCC_APB2PeriphClockCmd(ADVANCE_TIM_CH3_GPIO_CLK, ENABLE);
  GPIO_InitStructure.GPIO_Pin =  ADVANCE_TIM_CH3_PIN;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
  GPIO_Init(ADVANCE_TIM_CH3_PORT, &GPIO_InitStructure);       
       
}



static void ADVANCE_TIM_Mode_Config(void)
{
  TIM_ICInitTypeDef  TIM_ICInitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        ADVANCE_TIM_APBxClock_FUN(ADVANCE_TIM_CLK,ENABLE);
       
        TIM_TimeBaseStructure.TIM_Period=ADVANCE_TIM_PERIOD;       
       
        TIM_TimeBaseStructure.TIM_Prescaler= ADVANCE_TIM_PSC;       
       
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;               
       
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;               
       
        TIM_TimeBaseStructure.TIM_RepetitionCounter=0;       
       
        TIM_TimeBaseInit(ADVANCE_TIM, &TIM_TimeBaseStructure);

       
  TIM_ICInitStructure.TIM_Channel = ADVANCE_TIM_IC3PWM_CHANNEL;
       
  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
       
  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
       
  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;
       
  TIM_ICInitStructure.TIM_ICFilter = 0x0;
       
  TIM_PWMIConfig(ADVANCE_TIM, &TIM_ICInitStructure);
       
  TIM_SelectInputTrigger(ADVANCE_TIM, TIM_TS_TI1FP1);               

  TIM_SelectSlaveMode(ADVANCE_TIM, TIM_SlaveMode_Reset);
  TIM_SelectMasterSlaveMode(ADVANCE_TIM,TIM_MasterSlaveMode_Enable);

  TIM_ITConfig(ADVANCE_TIM, TIM_IT_CC3, ENABLE);            //一开始用的定时器1,这里是TIM_IT_CC1,因为换成了通道3,所以改成了TIM_IT_CC3
       
        TIM_ClearITPendingBit(ADVANCE_TIM, TIM_IT_CC3);      //一开始用的定时器1,这里是TIM_IT_CC1,因为换成了通道3,所以改成了TIM_IT_CC3
       
       
  TIM_Cmd(ADVANCE_TIM, ENABLE);
}

void ADVANCE_TIM_Init(void)
{
        ADVANCE_TIM_GPIO_Config();
        ADVANCE_TIM_NVIC_Config();
        ADVANCE_TIM_Mode_Config();               
}

/*********************************************END OF FILE**********************/





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-3-31 02:20:58 | 显示全部楼层
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-5-20
在线时间
2 小时
发表于 2019-5-23 15:19:26 | 显示全部楼层
遇到了同样的问题,想知道楼主是怎么解决的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 01:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表