OpenEdv-开源电子网

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

STM32F103 读取传感器数据PWM

[复制链接]

23

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
219
金钱
219
注册时间
2015-5-11
在线时间
19 小时
发表于 2015-10-21 22:28:45 | 显示全部楼层 |阅读模式
5金钱
以下是PWM.c
#include "pwm.h"

void TIM3_PWM_Init(void)
{  
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
        TIM_ICInitTypeDef  TIM_ICInitStructure;
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA  | RCC_APB2Periph_AFIO, ENABLE);  //????GPIO???è??AFIO???????????é?±??????
        
  //?è??????????????????????,????TIM3 CH3==>B0  CH4==>B1 ??PWM?????¨??
        GPIO_InitStructure.GPIO_Pin =GPIO_Pin_7; //??????GPIO
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  //???????ì????
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        
        TIM_ICInitStructure.TIM_Channel = TIM_Channel_2;                  //?¨???è??
  TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;       //????????·?
  TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;   //???????????÷????????
  TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;             //?????¤·??????????????????à????????????×???????????????????????±??????????????????á±??
  //±???????4·????ò????????????????×??????????????ù??????????±???????·±???é???????????????í??±?????????????????
  TIM_ICInitStructure.TIM_ICFilter = 0x0;                           //???¨?è???????ú??????????±????¨?¨?????¨0x0~0xf
  TIM_PWMIConfig(TIM3, &TIM_ICInitStructure);                       //?ù???????è??TIM???è???? 
  TIM_SelectInputTrigger(TIM3, TIM_TS_TI2FP2);                      //????IC2????????·??? 
  TIM_SelectSlaveMode(TIM3, TIM_SlaveMode_Reset);                                                                          //TIM??????????·??????????????????????????÷????·??????÷???ü?????? 
  TIM_SelectMasterSlaveMode(TIM3, TIM_MasterSlaveMode_Enable); //?????¨?±?÷??±?????·? 
  TIM_Cmd(TIM3, ENABLE);                                            //????TIM3           
  TIM_ITConfig(TIM3, TIM_IT_CC2, ENABLE);                           //?ò?????? 
}
u16 IC2Value = 0;
u16 DutyCycle = 0;
u16 Frequency = 0;
void TIM3_IRQHandler(void)
{
        TIM_ClearITPendingBit(TIM3,TIM_IT_CC2);//????TIM???????????í??
        IC2Value=TIM_GetCapture2(TIM3);  //????IC2?????????÷??????????PWM????????????
        if(IC2Value!=0)
        {
                DutyCycle=(TIM_GetCapture1(TIM3)*100)/IC2Value;     //????IC1?????????÷????????????????±?
                Frequency=72000000/IC2Value;    //????PWM????
        }
        else
        {
                DutyCycle=0;
                Frequency=0;
        }
}

以下是main.c
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "exti.h"
#include "wdg.h"
#include "pwm.h"

extern void TIM3_IRQHandler(void);
extern void TIM3_PWM_Init(void);
extern u16 IC2Value;
extern u16 DutyCycle ;
extern u16 Frequency ;

int main(void)
{
        
        SystemInit();
        delay_init(72);                             //???±??????
        NVIC_Configuration();          //????????
        uart_init(9600);                                //?®????????
        
                while(1)
        {
                        delay_ms(1004);
                  if(!IC2Value)
                        {
                                printf("CO2          = %d\r\n",DutyCycle);        
                                printf("CO2         = %d\r\n",Frequency);
                        }
        }         
}

为何读取不到数据呢?用的是PA7 TIM3_CH2 
技术文档

最佳答案

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-10-21 22:28:46 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
15
金钱
15
注册时间
2018-4-19
在线时间
1 小时
发表于 2018-5-4 12:24:22 | 显示全部楼层
帮顶,还是不知道咋回事
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-6 22:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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