新手上路
- 积分
- 42
- 金钱
- 42
- 注册时间
- 2019-2-19
- 在线时间
- 8 小时
|

楼主 |
发表于 2019-2-19 17:21:13
|
显示全部楼层
void TIM1_PWM_Init(u32 arr,u32 psc)
{
//´Ë²¿·ÖÐèÊÖ¶¯ÐÞ¸ÄIO¿ÚÉèÖÃ
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE); //TIM1ʱÖÓʹÄÜ
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE); //ʹÄÜ ORTEʱÖÓ
GPIO_PinAFConfig(GPIOE,GPIO_PinSource9|GPIO_PinSource11|GPIO_PinSource13|GPIO_PinSource14,GPIO_AF_TIM1); //GPIOE9\11\13\14¸´ÓÃΪ¶¨Ê±Æ÷1
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_11|GPIO_Pin_13|GPIO_Pin_14; //GPIOE9\11\13\14
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //¸´Óù¦ÄÜ
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; //ËÙ¶È100MHz
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; //ÍÆÍ츴ÓÃÊä³ö
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //ÉÏÀ­
GPIO_Init(GPIOE,&GPIO_InitStructure); //³õʼ»¯ E9\11\13\14
TIM_TimeBaseStructure.TIM_Prescaler=psc; //¶¨Ê±Æ÷·ÖƵ
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //ÏòÉϼÆÊýģʽ
TIM_TimeBaseStructure.TIM_Period=arr; //×Ô¶¯ÖØ×°ÔØÖµ
TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);//³õʼ»¯¶¨Ê±Æ÷1
//³õʼ»¯TIM1 Channel1¡¢2¡¢3¡¢4 PWMģʽ
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //Ñ¡Ôñ¶¨Ê±Æ÷ģʽ:TIMÂö³å¿í¶Èµ÷ÖÆÄ£Ê½2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //±È½ÏÊä³öʹÄÜ
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //Êä³ö¼«ÐÔ:TIMÊä³ö±È½Ï¼«ÐÔµÍ
TIM_OC1Init(TIM1, &TIM_OCInitStructure); //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIM1 4OC1
TIM_OC2Init(TIM1, &TIM_OCInitStructure); //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIM1 4OC2
TIM_OC3Init(TIM1, &TIM_OCInitStructure); //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIM1 4OC3
TIM_OC4Init(TIM1, &TIM_OCInitStructure); //¸ù¾ÝTÖ¸¶¨µÄ²ÎÊý³õʼ»¯ÍâÉèTIM1 4OC4
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable); //ʹÄÜTIM1ÔÚCCR1ÉϵÄÔ¤×°ÔØ¼Ä´æÆ÷
TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable); //ʹÄÜTIM1ÔÚCCR2ÉϵÄÔ¤×°ÔØ¼Ä´æÆ÷
TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable); //ʹÄÜTIM1ÔÚCCR3ÉϵÄÔ¤×°ÔØ¼Ä´æÆ÷
TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable); //ʹÄÜTIM1ÔÚCCR4ÉϵÄÔ¤×°ÔØ¼Ä´æÆ÷
TIM_ARRPreloadConfig(TIM1,ENABLE);//ARPEʹÄÜ
TIM_Cmd(TIM1, ENABLE); //ʹÄÜTIM1
}
上面这是不加重映射的代码
加了 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE) ;
GPIO_PinRemapConfig(GPIO_FullRemap_TIM1, ENABLE);
后发现RCC_APB2Periph_AFIO、GPIO_PinRemapConfig、GPIO_FullRemap_TIM1都没定义,在固件库gpio.c和rcc.c中都没找到相关定义,这部分是要自己写吗? |
|