打印
[STM8]

STM8S tim1 PWM

[复制链接]
6579|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
日月华人|  楼主 | 2014-4-30 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
调试一个tim1通道1输出PWM,一直是低电平,不知道为什么,求解,下面是代码:
#include "iostm8s103f3.h"
void TIM1_Init()
{
  TIM1_CCMR1 = 0x60;
  TIM1_CCER1 = 0x05;
  
//初始化自动装载寄存器,决定PWM方波的频率,     
  TIM1_ARRH = 0;
  TIM1_ARRL = 0x05;
//初始化比较寄存器,决定PWM方波的占空比              
  TIM1_CCR1H = 0;
  TIM1_CCR1L = 3;      
// 初始化时钟分频器为1,
  TIM1_PSCRH = 0x00;
  TIM1_PSCRL = 0x00;
//初始化刹车寄存器  
  TIM1_BKR=0x80;
  // 启动计数
  TIM1_CR1 = 0x01;
}

void  main(void)
{
  CLK_CKDIVR=0x10;//4分频
  TIM1_Init();
  while(1);
}
沙发
qd118| | 2014-5-1 21:46 | 只看该作者
根据不同的脚位,还需进行配置位设置

使用特权

评论回复
板凳
mmuuss586| | 2014-5-1 22:28 | 只看该作者
没有gpio设置啊

使用特权

评论回复
地板
日月华人|  楼主 | 2014-5-12 13:57 | 只看该作者
qd118 发表于 2014-5-1 21:46
根据不同的脚位,还需进行配置位设置

怎样配置设置啊?能否帮忙更改一下代码!

使用特权

评论回复
5
日月华人|  楼主 | 2014-5-12 13:59 | 只看该作者
mmuuss586 发表于 2014-5-1 22:28
没有gpio设置啊

TIM2我好像没有设置GPIO啊,可以产生PWM。用TIM1主要是因为TIM2的PWM不好配置频率。   TIM1要设置GPIO吗?怎么设置?

使用特权

评论回复
6
zhwl_1981| | 2014-5-12 14:39 | 只看该作者
   TIM1_CR1 &= ~BIT(0);         // 关闭TIM1
   //
   TIM1_PSCRH = 0;      
   TIM1_PSCRL = 0;              // 不分频16MHZ
   //
   TIM1_ARRH = 0;               // 16MHZ/(49+1) = 320KHZ
   TIM1_ARRL = 49;
   //
   /* 使能ARP 自动重装载*/
   TIM1_CR1 |= MASK_TIM1_CR1_ARPE;         
   /* 更新TIM1,使PSC有效,会触发更新事件*/
   TIM1_EGR |= MASK_TIM1_EGR_UG;
   //
   TIM1_CCR3H = 0;      
   TIM1_CCR3L = 10;             // 设置占空比
   TIM1_CCR4H = 0;      
   TIM1_CCR4L = 25;             // 设置占空比   
   //
   TIM1_CCMR4 = MCU_TIM1_CCMR;
   TIM1_CCMR3 = MCU_TIM1_CCMR;  // 配置TIM1_CH3PWM模式
   //
   TIM1_CCER2 |= BIT(0);        // 使能TIM1_CH3通道
   TIM1_CCER2 |= BIT(4);        // 使能TIM1_CH4通道
   //
   TIM1_CR1 |= BIT(0);          // 使能TIM1
   TIM1_BKR |= BIT(7);          // 禁止刹车功能

使用特权

评论回复
7
zhwl_1981| | 2014-5-12 14:43 | 只看该作者
对应的输出是PC3,PC4
#define BIT(n)                      (1<<(n))

使用特权

评论回复
8
qd118| | 2014-5-12 17:13 | 只看该作者
STM8S103xx数据手册p23有详细说明,再到编译软件里设置下即可

使用特权

评论回复
9
日月华人|  楼主 | 2014-5-14 17:48 | 只看该作者
zhwl_1981 发表于 2014-5-12 14:43
对应的输出是PC3,PC4
#define BIT(n)                      (1

你好。我用的是STM8S103F3的芯片,没有CH3与CH4,改成CH1与CH2可以吧?

使用特权

评论回复
10
日月华人|  楼主 | 2014-5-14 19:21 | 只看该作者
感谢各位的解答,问题已解决!谢谢!

使用特权

评论回复
11
zybyjj| | 2014-8-6 10:27 | 只看该作者
怎么解决的,我现在碰到同样的问题。

使用特权

评论回复
12
zale1204| | 2014-8-6 12:49 | 只看该作者
看来已经解决了。。

使用特权

评论回复
13
lisasa| | 2014-9-28 15:12 | 只看该作者
只知道问问题,解决问题了也不讲一下怎么解决的。后面人碰到同样问题还是找不到答案。感觉楼主好自私啊

使用特权

评论回复
14
HanyLey| | 2014-10-9 10:58 | 只看该作者
楼主,刚刚用STM8S103F3P,遇到同样的问题,PC3,PC4有输出,PC1,PC2,没输出,请教一下,能否说明一下,你是怎么解决的,谢谢,或发我邮箱lhyhan21@126.com

使用特权

评论回复
15
liyiui| | 2014-10-13 18:05 | 只看该作者
有谁知道的说下,现在的人只管问,找到了答案也不说了

使用特权

评论回复
16
123159756| | 2016-11-9 10:53 | 只看该作者
代碼測試過,沒有問題,應該是沒有配置OPTION BYTE的AFR0為1,所以引腳不能輸出PWM信號

使用特权

评论回复
17
xingzai2012| | 2020-6-12 12:58 | 只看该作者
需要配置一下,这个是详细解释,https://blog.csdn.net/tcjy1000/article/details/91050089

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝