新手上路
- 积分
- 24
- 金钱
- 24
- 注册时间
- 2018-6-11
- 在线时间
- 10 小时
|
10金钱
按照正点原子里面的视频修改的PWM输出实验,改成PB6输出 ,结果没有pwm输出PWM.c文件
[mw_shl_code=c,true]#include "PWM.h"
void TiM4_PWM_Init(u16 arr, u16 psc )
{
TIM_TimeBaseInitTypeDef TIM_Timeinit;
TIM_OCInitTypeDef TIM_OCInitstruct;
GPIO_InitTypeDef GPIO_InitStrucyure;
/////////////// 1
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); //使能定时器4时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); // 使能GPIO
////////////// 初始化io 为复用输出
GPIO_InitStrucyure.GPIO_Mode=GPIO_Mode_AF_PP; //改为复用推挽输出GPIO_Mode_AF_PP
GPIO_InitStrucyure.GPIO_Pin=GPIO_Pin_6;
GPIO_InitStrucyure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStrucyure); //初始化io口
TIM_Timeinit.TIM_ClockDivision = TIM_CKD_DIV1 ; //
TIM_Timeinit.TIM_CounterMode = TIM_CounterMode_Up; //计数模式
TIM_Timeinit.TIM_Period = arr;
TIM_Timeinit.TIM_Prescaler = psc; //预分频系数
TIM_TimeBaseInit(TIM4,&TIM_Timeinit);
////////////
TIM_OCInitstruct.TIM_OCMode = TIM_OCMode_PWM2 ; //模式2
TIM_OCInitstruct.TIM_OCNPolarity = TIM_OCPolarity_High ; //极性输出高
TIM_OCInitstruct.TIM_OutputNState = TIM_OutputState_Enable ; //
TIM_OC1Init(TIM4,&TIM_OCInitstruct); //TIM_OCX 通道1 就OC1
//////////////////////////
TIM_OC1PreloadConfig(TIM4,TIM_OCPreload_Enable);
//////////////
TIM_Cmd(TIM4,ENABLE);
////////
}
[/mw_shl_code]
主函数:
[mw_shl_code=c,true]int main (void)
{
delay_init(72);
TiM4_PWM_Init(899, 0 ) ;
TIM_SetCompare1(TIM4,200);
}[/mw_shl_code]
TIM_SetCompare1中无论换任何值 灯都不会亮 ,
|
最佳答案
查看完整内容[请看2#楼]
找到错误了 还是粗心大意!TIM_OCInitstruct.TIM_OutputNState = TIM_OutputState_Enable ; 应该是TIM_OCInitstruct.TIM_OutputState = TIM_OutputState_Enable ; 没有那个N!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|