打印
[STM8]

急!STM8的time2输出PWM问题

[复制链接]
2351|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 biiigfish 于 2015-3-14 13:48 编辑

急!快被这个折腾死了!用的片子是STM8S003F3p6。下面的代码,channel2有PWM输出,channel3没有。。。其他地方没有对GPIOD有操作。

void pwm_init()
{  
    TIM2->CCMR2 = 0x70;// Output mode PWM2.         
                               // 通道2被设置成比较输出方式
                               // OC2M = 111,为PWM模式2,
                               // 向上计数时,若计数器小于比较值,为无效电平
                               // 即当计数器在0到比较值时,输出为1,否则为0
    TIM2->CCMR3 = 0x70;
        
    TIM2->CCER1 = 0x30;        // CCER1[7...0]=00:channel2:00:channel1
                                // CC2P = 1,低电平为有效电平
                                // CC2E = 1,开启输出引脚
   
    TIM2->CCER2 = 0x03;        // CCER2[7...0]=00:00:00:channel3
      
    //设置重装时的寄存器值,即一个pwm周期是多少个系统时钟周期,Fpwm=2000000/256
    TIM2->ARRH = 0x00;
    TIM2->ARRL = 0xFF;
        
    //初始化比较寄存器,决定PWM方波的占空比              
    TIM2->CCR2H = 0;
    TIM2->CCR2L = LOW_SPEED;
   
    TIM2->CCR3H = 0;
    TIM2->CCR3L = LOW_SPEED;
   
    // 初始化时钟分频器为1,即计数器的时钟频率为Fmaster=2MHZ
    TIM2->PSCR = 0;

    // 启动计数
    TIM2->CR1 |= 0x01;
}
沙发
biiigfish|  楼主 | 2015-3-14 13:38 | 只看该作者
#define LOW_SPEED 100

换了两个片子了,引脚上现在啥都没接。。。

使用特权

评论回复
板凳
biiigfish|  楼主 | 2015-3-14 13:40 | 只看该作者
会不会和用IAR编译有关系???

使用特权

评论回复
地板
白开水key| | 2015-3-14 13:48 | 只看该作者
楼主是什么型号的片子

使用特权

评论回复
5
biiigfish|  楼主 | 2015-3-14 13:49 | 只看该作者
白开水key 发表于 2015-3-14 13:48
楼主是什么型号的片子

STM8S003F3P6

使用特权

评论回复
6
白开水key| | 2015-3-14 13:52 | 只看该作者
通道2 有输出  通道3没有?

使用特权

评论回复
7
biiigfish|  楼主 | 2015-3-14 13:54 | 只看该作者
下面是tim2的寄存器值,也一点问题没有啊!还要考虑哪里呢。。。

03.14.JPG (31.17 KB )

03.14.JPG

使用特权

评论回复
8
biiigfish|  楼主 | 2015-3-14 13:56 | 只看该作者
白开水key 发表于 2015-3-14 13:52
通道2 有输出  通道3没有?

引脚pd3上有pwm,引脚pd2上没有。。。目前两个引脚都是悬空的,排除硬件设计问题。

使用特权

评论回复
9
biiigfish|  楼主 | 2015-3-14 14:51 | 只看该作者
本帖最后由 biiigfish 于 2015-3-14 14:59 编辑

AFR1 Alternate function remapping option 1(2)
0: AFR1 remapping option inactive: Default alternate
functions
(1)
.
1: Port A3 alternate function = SPI_NSS; port D2
alternate function = TIM2_CH3

channel3需要remapping才能用,正在解决。

使用特权

评论回复
评论
dadodo 2015-3-14 23:34 回复TA
低级错误 
10
lvyunhua| | 2015-3-15 11:05 | 只看该作者
:lol  是啊,这下应该解决了吧。

使用特权

评论回复
11
wj19900703| | 2015-3-18 10:42 | 只看该作者
time2_ch3,你想用作PWM输出的话,先要对芯片做备选功能重映射,备选功能重映射有两种方法,一种是软件配置,这种方式复杂些,还有一种是烧入器方式,你如果用的是stvd的话应该有软件可以配置这些

使用特权

评论回复
12
yixin1937| | 2015-3-18 10:51 | 只看该作者
打一下酱油~~~

使用特权

评论回复
13
yixin1937| | 2015-3-18 10:51 | 只看该作者
顶~~~~打一下酱油~~~

使用特权

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

本版积分规则

1

主题

8

帖子

1

粉丝