OpenEdv-开源电子网

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

想用TM3输出四路PWM,可以实现,但现在想把PA6,A7的部分重映射到PB4,B5;为什么只有5脚有,PB4脚没有????这是程序源码,初学者,求大神指导,紧急求救,,,,,,SOS

[复制链接]

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2014-3-8
在线时间
19 小时
发表于 2015-7-12 19:40:06 | 显示全部楼层 |阅读模式
5金钱
想用TM3输出四路PWM,可以实现,但现在想把PA6,A7的部分重映射到PB4,B5;为什么只有5脚有,PB4脚没有????这是程序源码,初学者,求大神指导,紧急求救,,,,,,SOS   

最佳答案

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2014-3-8
在线时间
19 小时
 楼主| 发表于 2015-7-12 20:27:16 | 显示全部楼层
#include "timer.h"
#include "led.h"
#include "usart.h"
//////////////////////////////////////////////////////////////////////////////////  
//±????ò?????§?°??????????×÷???í???????????????ü????????
//ALIENTEK????STM32??·?°?
//?¨?±?÷ ?????ú??    
//??????×?@ALIENTEK
//????????:www.openedv.com
//????????:2012/9/4
//°?±???V1.1
//°??¨?ù??????°?±?????
//Copyright(C) ?????????í??×????????????? 2009-2019
//All rights reserved   
//********************************************************************************
//V1.1 20120904
//1,????TIM3_PWM_Init??????
//2,????LED0_PWM_VAL?ê?¨????????TIM3_CH2???í   
//////////////////////////////////////////////////////////////////////////////////  
      
//?¨???¨?±?÷3??????????
//?????±????????APB1??2±?????APB1??36M
//arr??×?????×°????
//psc???±???¤·?????
//?????????????¨?±?÷3!

//?¨?±?÷3????·??????ò
void TIM3_IRQHandler(void)   //TIM3????
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //?ì?é???¨??TIM????·??ú??·?:TIM ?????? 
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //????TIMx???????????í??:TIM ?????? 
//  LED1=!LED1;
}
}




//TIM3 WM??·??????? 
//PWM??????????
//arr??×?????×°??
//psc???±???¤·?????
void TIM3_PWM_Init(u16 arr,u16 psc)
{  
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;


RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //?????¨?±?÷3?±??
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);  //????GPIO???è??AFIO???????????é?±??

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //Timer3??·???????  TIM3_CH2->B5    
 
   //?è??????????????????????,????TIM3 CH2??PWM?????¨?? GPIOB.5  GPIOB.4
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_4; //TIM_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //???????ì????
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//??????GPIO

//?è??????????????????????,????TIM3 CH2??PWM?????¨?? B0,B1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_AF_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

//  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; //TIM_CH2
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //???????ì????
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
//  GPIO_Init(GPIOA, &GPIO_InitStructure);//??????GPIO
   //??????TIM3
TIM_TimeBaseStructure.TIM_Period = arr; //?è???????????ü??????×°????????×?????×°???????÷????????
TIM_TimeBaseStructure.TIM_Prescaler =psc; //?è??????×÷??TIMx?±?????????????¤·????? 
TIM_TimeBaseStructure.TIM_ClockDivision = 0; //?è???±??·???:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM?ò??????????
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //?ù??TIM_TimeBaseInitStruct?????¨????????????TIMx???±???ù??????

//??????TIM3 Channel2 WM????  
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //?????¨?±?÷????:TIM?????í???÷??????2
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±???????????
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //????????:TIM????±?????????
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;

TIM_OC1Init(TIM3, &TIM_OCInitStructure);          //??TIM_OCInitStruct???????????TIMx
TIM_OC2Init(TIM3, &TIM_OCInitStructure);
TIM_OC3Init(TIM3, &TIM_OCInitStructure);
TIM_OC4Init(TIM3, &TIM_OCInitStructure);  
TIM_Cmd(TIM3, ENABLE);
TIM_CtrlPWMOutputs(TIM3, ENABLE);
}
补充一下四路的
回复

使用道具 举报

5

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2014-3-8
在线时间
19 小时
 楼主| 发表于 2015-7-13 08:48:56 | 显示全部楼层
恩恩,试过了,加上就可以了,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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