脱缰的蜗牛 发表于 2016-5-9 09:23:01

求救!STM8S003F3用TIM2可以输出PWM,用TIM1就没用

本帖最后由 脱缰的蜗牛 于 2016-5-9 15:39 编辑

求救!STM8S003F3用TIM2可以输出PWM,用TIM1就没用,本来打算输出互补式的PWM,结果连PWM 都输出不了,用的软件是STVD的,在网上看到说要配置字,如果要的话又怎么配置呢??程序如下:
    TIM1_PSCRH =0x00;//使用内部16MHZ
    TIM1_PSCRL =0x00;//设定预分频16MHZ
               
    TIM1_ARRH = 0x00;   //设定输出频率=160kHZ
    TIM1_ARRL = 0x64;//0x064=10016MHZ/100=160kHZ
               
        TIM1_CCMR1 = 0x60; //CC1配置为输出 通道1为有效电平
        TIM1_CCER1 = 0x01; //CC2ER1开启1,2,高电平有效

        TIM1_CR1 |= 0x01; //使能TIM1计数器
       TIM1_BKR |= 0x80;

       TIM1_CCR1H = 0;
       TIM1_CCR1L = 0x80;// 占空比值

利弊利弊 发表于 2016-5-30 10:33:39

先看外设时钟门控寄存器配置没有,我有stm8s103的选项字节配置你参考下:
void FLASH_Init(void)
{
//解锁数据 EEPROM
FLASH_DUKR = 0xae;
delay_us(1);
FLASH_DUKR = 0x56;
delay_us(1);
//判断解锁是否成功,即判断 FLASH_IAPSR 寄存器的 DUL 位是否为 1
while(!(FLASH_IAPSR & 0x08));
delay_us(1);
//使能选项字节写操作
FLASH_CR2 = 0x80;
delay_us(1);
FLASH_NCR2 = 0x7f;
delay_us(1);
*((unsigned char *)0x4803) = 0x01;
delay_us(1);
*((unsigned char *)0x4804) = 0xfe;
}

zhuoyemp4 发表于 2016-5-30 12:01:22

你好,需要配置选项字节
有两种方法,一种是在你的程序中写代码配置,如2楼所示,另一种是在STVP里根据需要对选项字节编程,如下图所示。

wangxb2555 发表于 2017-7-31 21:39:20

:loveliness::loveliness::loveliness::loveliness::loveliness::loveliness::):):):)好大收获

rock614 发表于 2017-12-5 14:21:44

这种细活比较难发现,如果是中文还可以咬牙把说明文档看几遍,

hxydj 发表于 2018-1-20 11:31:55

这个例子可以参考下http://download.csdn.net/download/qq_20222919/10179594

fhy12138 发表于 2019-7-14 10:24:45

求楼主TIM2的PWM程序,我和您的情况相反,我是TIM1能输出,TIM2死活不输出,1213888580@qq.com,跪求楼主帮助
页: [1]
查看完整版本: 求救!STM8S003F3用TIM2可以输出PWM,用TIM1就没用