完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我用PC3/PC4/PC6/PC7来做产生2对互补PWM,PC3/PC6/PC7周期、死区都正常,但是PC4在我期望的PWM上还会叠加一个33kHz的方波,我设置的周期是2kHz。我一直怀疑是时钟输出(CCO)的串扰。请各位大侠帮忙看看是怎么回事。一下是初始化代码:
void InitSystem(void) { CLK->CKDIVR = (u8)~(CLK_CKDIVR_CPUDIV); // fcpu= fmaster (CPUDIV= 0) CLK->CKDIVR = (u8)~(CLK_CKDIVR_HSIDIV); // fhsi= fhsirc (HSIDIV= 0) CLK->ICKR |= CLK_ICKR_HSIEN; //时能内部始 while((CLK->ICKR 0x02) == 0) {}; //等待内部始终就绪 CLK->CCOR = 0x00; //禁止CCO时钟输出 } void Inittimer1(void) { CLK->PCKENR1 |= CLK_PCKENR1_TIM1; //TIM1 Clock Enable TIM1->CR1 = 0x40;//递增递减计数中央对齐,只在递增中断。 TIM1->SR1 = 0x00;//清除中断标志位 TIM1->SR2 = 0x00; TIM1->CCMR1 = 0x68; TIM1->CCMR2 = 0x68; TIM1->CCER1 = 0xFF;// iP高电平,iN低电平 TIM1->PSCRH = 0; TIM1->PSCRL = 0; //16MHz时钟 TIM1->ARRH = (u8)(((PwmPeriod - 1) >> 8) 0xff); // init pulse period - auto reload register TIM1->ARRL = (u8)((PwmPeriod - 1) 0xff); TIM1->CCR1H = 0; TIM1->CCR1L = 98; TIM1->CCR2H = 0; TIM1->CCR2L = 95; TIM1->DTR = 60; TIM1->IER |= TIM1_IER_UIE ; //不用刹车中断,硬件没有接允许更新中断 中断号11 TIM1->CR1 |= TIM1_CR1_URS | TIM1_CR1_CEN; // enable timer; TIM1->BKR = 0x80; TIM1->EGR |= 0x01; } |
|
相关推荐
1个回答
|
|
从您提供的代码和描述来看,您正在使用STM8S003微控制器的PC3/PC4/PC6/PC7引脚来产生两对互补的PWM信号。您提到PC4引脚在期望的PWM信号上叠加了一个33kHz的方波,而其他引脚的周期和死区都正常。您怀疑这可能是时钟输出(CCO)的串扰导致的。
为了解决这个问题,我们可以按照以下步骤进行排查: 1. 检查CCO配置:首先,我们需要确认CCO是否被配置为输出,并且其频率与您观察到的33kHz方波相符。如果CCO确实被配置为输出,并且频率接近33kHz,那么这可能是导致问题的原因。 2. 检查CCO引脚:如果CCO被配置为输出,您可以尝试将CCO引脚与PC4引脚物理隔离,以查看是否消除了33kHz方波。这可以通过更改CCO引脚的配置或使用跳线将CCO引脚连接到另一个未使用的GPIO引脚来实现。 3. 检查PC4引脚的配置:确保PC4引脚被正确配置为PWM输出。检查您的代码中是否有任何可能影响PC4引脚配置的部分,例如GPIO模式、输出类型、速度等。 4. 检查PWM配置:仔细检查您的PWM初始化代码,确保所有相关的寄存器都被正确设置。特别是,检查定时器的预分频器、自动重载寄存器和捕获/比较模式寄存器等。 5. 检查电源和地线:确保您的电路板的电源和地线连接正确,没有短路或接地问题。不良的电源和地线连接可能导致电磁干扰,从而影响PWM信号的质量。 6. 使用示波器:使用示波器观察PC4引脚的PWM信号,以更准确地了解叠加的33kHz方波的特性。这将有助于确定问题的根本原因。 7. 软件滤波:如果上述步骤都无法解决问题,您可以尝试在软件中对PWM信号进行滤波,以消除33kHz方波的影响。这可以通过在PWM信号处理过程中添加低通滤波器或平均滤波器来实现。 通过以上步骤,您应该能够找到导致PC4引脚异常PWM输出的原因,并采取相应的措施来解决问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1670 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1576 浏览 1 评论
1008 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
698 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1622 浏览 2 评论
1891浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
672浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
534浏览 3评论
555浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
523浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 14:37 , Processed in 1.086499 second(s), Total 82, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号