OpenEdv-开源电子网

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

定时器双路输出

[复制链接]

19

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
140
金钱
140
注册时间
2015-9-26
在线时间
7 小时
发表于 2016-3-8 20:57:15 | 显示全部楼层 |阅读模式
3金钱
GPIO_InitTypeDef GPIO_InitStruct;
        TIM_OCInitTypeDef TIM_OCInitStruct;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);        //使能定时器3时钟
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);  //使能GPIO外设和AFIO复用功能模块时钟
       
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6;
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOA, &GPIO_InitStruct);//初始化GPIO
       
        GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3部分重映射  TIM3_CH2->PB5   

   //设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形        GPIOB.5
        GPIO_InitStruct.GPIO_Pin = GPIO_Pin_5;
        GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
        GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStruct);//初始化GPIO
       
        //TIM_OCInitStruct.TIM_OCIdleState=
        TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM2;
        //TIM_OCInitStruct.TIM_OCNIdleState=
//        TIM_OCInitStruct.TIM_OCNPolarity=
        TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;
        //TIM_OCInitStruct.TIM_OutputNState=
        TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;//比较输出使能
        //TIM_OCInitStruct.TIM_Pulse=
        TIM_OC2Init(TIM3, &TIM_OCInitStruct);
        TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的预装载寄存器
        //TIM_Cmd(TIM3,ENABLE);
        TIM_OC3Init(TIM3, &TIM_OCInitStruct);
        TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);  //使能TIM3在CCR2上的预装载寄存器
        TIM_Cmd(TIM3,ENABLE);
第一个问题:
这里用到了定时器3的第二和第三个通道,其中第二通道使用重映射到led灯上。第三个通道使用引脚PA6只需要复用就行
这个gpio的代码怎么写 我写的对吗?
第二个问题:
这个//TIM_OCInitStruct.TIM_OCNIdleState= //TIM_OCInitStruct.TIM_OutputNState= 这些带N的是用来做什么的 资料上没找到 具体是干什么用的
我要写个定时器双路输出 我这样写对吗?
如果能有好的帖子发个给我谢谢
菜鸟一只,望各位大神搭救。

最佳答案

查看完整内容[请看2#楼]

问题一:通道配置有错,PA6-TIM3_CH1,PB5-TIM3_CH2,另外PB5是要进行IO部分重映象配置的; 问题二:带N的是用来配置互补输出通道的,要高级定时器才有;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

42

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
406
金钱
406
注册时间
2015-7-2
在线时间
120 小时
发表于 2016-3-8 20:57:16 | 显示全部楼层
3.png
问题一:通道配置有错,PA6-TIM3_CH1,PB5-TIM3_CH2,另外PB5是要进行IO部分重映象配置的;
问题二:带N的是用来配置互补输出通道的,要高级定时器才有;
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-3-9 22:52:17 | 显示全部楼层
1,重映射,有一个表,你看看通道2重映射,是否会影响到通道3,如果影响到了,那就不行.
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 06:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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