服务热线400-888-0024
新拓PIC单片机论坛 新拓PIC论坛携手高奇微电子,强势推出买PIC原装工具,送PIC国产工具活动 新拓PIC开发工具商城

Microchip PIC单片机论坛MICROCHIP 单片机应用专区MICROCHIP 16/32位单片机应用 → [求助]dspic33fj128mc804的PWM1波设置影响了uart,求解


  共有203人关注过本帖平板打印

主题:[求助]dspic33fj128mc804的PWM1波设置影响了uart,求解

帅哥哟,离线,有人找我吗?
chinalll
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 贴子:6 积分:45 威望:0 精华:0 注册:2010-11-22 9:22:00
[求助]dspic33fj128mc804的PWM1波设置影响了uart,求解  发贴心情 Post By:2017-8-27 22:01:00

只要一使能PWM1,串口的的输出端就出现2.5us宽的脉冲,频率好像和pwm设置的有关系。 而且pwm波的波形不是很正常,不是正常的方波,一个周期里会有两次低电平,不知道问题在哪里。哪位大侠*过的uart接*的数据控制pwm波占空比的 PWM2输出是正常的 这是pwm波的使能程序 void init_PWM() { P1TPER = 2404; /* P1TPER = ((1 / 400kHz) / 1.04ns) = 2404, where 400kHz //决定PWM波的工作频率 is the desired switching frequency and 1.04ns is PWM resolution. */ //2404----7khz //1204----11.76k /*~~~~~~~~~~~~~~~~~~~~~~~ PWM1 Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ P1TCONbits.PTMOD = 0b00; //边沿对起 P1TCONbits.PTCKPS= 0b00; //预分频1:1 P1TCONbits.PTOPS = 0b00; //后分频1:1 PWM1CON1bits.PEN1H = 1; //使能PWM1H脚 PWM1CON1bits.PEN1L = 0; //使能PWM1L脚 PWM1CON1bits.PEN2H = 1; //使能PWM2H脚 PWM1CON1bits.PEN2L = 0; //使能PWM2L脚 PWM1CON1bits.PEN3H = 1; //使能PWM3H脚 PWM1CON1bits.PEN3L = 0; //使能PWM3L脚 PWM1CON1bits.PMOD1=1; //PWM脚处于独立输出模式,0为互补 PWM1CON1bits.PMOD2=1; //PWM脚处于独立输出模式,0为互补 PWM1CON1bits.PMOD3=1; //PWM脚处于独立输出模式,0为互补 PWM1CON2bits.SEVOPS = 0; //特殊事件后分频为1:1 PWM1CON2bits.IUE = 1; //立即更新P1DCX PWM1CON2bits.OSYNC = 1; //强制输出在下一tcy边沿发生 PWM1CON2bits.UDIS = 0; //0:允许从占空比和周期缓冲寄存器更新 P1DC1 = 0; /*占空比设置,P1DC1=P1TPER,50%*/ P1DC2 = 0; /*占空比设置,P1DC2=P1TPER,50%*/ P1DC3 = 0; /*占空比设置,P1DC3=P1TPER,50%*/ _PWM1IE = 1; //允许PWM中断 _PWM1IP = 5; //中断优先级5 P1TCONbits.PTEN = 1; /* Enable the PWM Module */ /////////////////////////// P2TCONbits.PTMOD = 0b00; //边沿对起 P2TCONbits.PTCKPS= 0b00; //预分频1:1 P2TCONbits.PTOPS = 0b00; //后分频1:1 PWM2CON1bits.PEN1H = 1; //使能PWM1H脚 PWM2CON1bits.PEN1L = 0; //使能PWM1L脚 PWM2CON1bits.PMOD1=1; //PWM脚处于独立输出模式,0为互补 PWM2CON2bits.SEVOPS = 0; //特殊事件后分频为1:1 PWM2CON2bits.IUE = 1; //立即更新P1DCX PWM2CON2bits.OSYNC = 1; //强制输出在下一tcy边沿发生 PWM2CON2bits.UDIS = 0; //0:允许从占空比和周期缓冲寄存器更新 P2DC1 = 0; /*占空比设置,P1DC1=P1TPER,50%*/ _PWM2IE = 1; //允许PWM中断 _PWM2IP = 5; //中断优先级5 // P2TCONbits.PTEN = 1; /* Enable the PWM Module */ }
图片点击可在新窗口打*查看此主题相关图片如下:img_5941.jpg
图片点击可在新窗口打*查看

图片点击可在新窗口打*查看此主题相关图片如下:img_5940.jpg
图片点击可在新窗口打*查看
[此贴子已经被作者于2017-8-27 22:01:09编辑过]

支持(0中立(0反对(0回到顶部