刚接触421没多少时间,问一下群里的大神们关于421封装是20PIN的芯片是如何设置PWM输出的,我写了一段代码套用了一下没反应
void gpioset(void)
{
GPIO_InitType GPIO_InitStrue;
TMR_OCInitType TMR_OCInitStrue;
TMR_TimerBaseInitType TMR_TimeBaseInitStrue;
RCC_AHBPeriphClockCmd(RCC_AHBPERIPH_GPIOA, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1PERIPH_TMR3, ENABLE);
GPIO_PinAFConfig(GPIOA, GPIO_PinsSource6, GPIO_AF_1);
GPIO_InitStrue.GPIO_Pins=GPIO_Pins_6;
GPIO_InitStrue.GPIO_MaxSpeed=GPIO_MaxSpeed_50MHz;
GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF;
GPIO_InitStrue.GPIO_OutType=GPIO_OutType_PP;
GPIO_InitStrue.GPIO_Pull=GPIO_Pull_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStrue);
TMR_TimeBaseInitStrue.TMR_Period=999; //400Hz
TMR_TimeBaseInitStrue.TMR_DIV=179;
TMR_TimeBaseInitStrue.TMR_CounterMode=TMR_CounterDIR_Up;
TMR_TimeBaseInitStrue.TMR_ClockDivision=TMR_CKD_DIV1;
TMR_TimeBaseInit(TMR1,&TMR_TimeBaseInitStrue);
TMR_OCInitStrue.TMR_OCMode=TMR_OCMode_PWM2; //增加负脉冲变宽
TMR_OCInitStrue.TMR_OCPolarity=TMR_OCPolarity_High;
TMR_OCInitStrue.TMR_OutputState=TMR_OutputState_Enable;
TMR_OC1Init(TMR3,&TMR_OCInitStrue);
TMR_OC1PreloadConfig(TMR3,TMR_OCPreload_Enable);
TMR_Cmd(TMR3,ENABLE);
...........
下面是调用
int main(void)
{
gpioset();
TMR_SetCompare1(TMR3, 500);
}
先谢过回复的大神
|