完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在STM8S103K,上能够实现定时器1中的CH1通道可以实现PWM功能,把程序移植到STM8S103F中,就实现不了,但是修改STM8S103F,的通道3和4后,也能输出PWM,这是为什么,程序如下:
void tiMER1_PWMInit(void){ TIM1_DeInit();//恢复相关寄存器至初始值 TIM1_TimeBaseInit(8, TIM1_COUNTERMODE_UP, 14355, 0);//时基初始化,预分频值1,向上计数,自动重装值49999,重复计数器值0 TIM1_OC4Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, 7050, TIM1_OCPOLARITY_LOW, TIM1_OCIDLESTATE_SET); TIM1_CCxCmd(TIM1_CHANNEL_4, ENABLE); //这行区别于T2的PWM TIM1_OC4PreloadConfig(ENABLE);//输出比较 预装载使能 TIM1_OC3Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,7500, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET);//输出比较通道3 初始化,匹配时输出电平翻转,启用输出比较,禁 //用输出比较互补输出,脉宽5000,输出比较极性位低电平,互补输出比较极性高电平,输出比较空闲状态高电平,互补输出比较空闲状态低电平 TIM1_CCxCmd(TIM1_CHANNEL_3, ENABLE); //这行区别于T2的PWM TIM1_OC3PreloadConfig(ENABLE);//输出比较 预装载使能 TIM1_OC2Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,7500, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET); TIM1_CCxCmd(TIM1_CHANNEL_2, ENABLE); //这行区别于T2的PWM TIM1_OC2PreloadConfig(ENABLE);//输出比较 预装载使能 TIM1_OC1Init(TIM1_OCMODE_PWM1, TIM1_OUTPUTSTATE_ENABLE, TIM1_OUTPUTNSTATE_ENABLE,7500, TIM1_OCPOLARITY_HIGH, TIM1_OCNPOLARITY_LOW, TIM1_OCIDLESTATE_RESET, TIM1_OCNIDLESTATE_RESET); TIM1_CCxCmd(TIM1_CHANNEL_1, ENABLE); //这行区别于T2的PWM TIM1_OC1PreloadConfig(ENABLE);//输出比较 预装载使能 TIM1_CtrlPWMOutputs(ENABLE);//使能TIM1 主输出 TIM1_Cmd(ENABLE);//使能TIM1 计数器计数 } |
|
相关推荐
1个回答
|
|
STM8S103K和STM8S103F是两款不同的STM8系列微控制器,它们在某些功能和引脚配置上可能存在差异。在您的情况下,STM8S103K的CH1通道能够实现PWM功能,但是在STM8S103F中无法实现。这可能是因为两款微控制器的定时器通道配置或者引脚分配有所不同。
在STM8S103K中,您使用的是TIM1_CHANNEL_1通道,而在STM8S103F中,您需要使用TIM1_CHANNEL_3或TIM1_CHANNEL_4通道。这可能是因为STM8S103F的CH1通道可能不支持PWM功能,或者CH1通道的引脚与其他功能冲突。 为了解决这个问题,您可以尝试以下步骤: 1. 首先,确保您已经阅读了STM8S103F的数据手册,了解其定时器通道的配置和引脚分配。 2. 检查您的STM8S103F开发板的引脚分配,确保您使用的通道与开发板上的引脚相匹配。 3. 修改您的代码,将STM8S103K中的TIM1_CHANNEL_1替换为STM8S103F中支持PWM功能的通道,如TIM1_CHANNEL_3或TIM1_CHANNEL_4。 4. 如果需要,调整定时器的初始化参数,以适应STM8S103F的特性。 5. 重新编译并烧录修改后的程序到STM8S103F开发板上,测试PWM功能是否正常工作。 6. 如果仍然存在问题,请检查您的开发板硬件连接,确保没有短路或断路。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1771 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1619 浏览 1 评论
1070 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
724 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1673 浏览 2 评论
1935浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
728浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
567浏览 3评论
593浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
551浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 11:35 , Processed in 0.850313 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号