www.dftb.net > STM8怎么设置定时器TIM1的10ms基准

STM8怎么设置定时器TIM1的10ms基准

假设12M晶振,使用STM8外设库实现 void timer1(void) { TIM1_DeInit(); TIM1_TimeBaseInit(12000, TIM1_COUNTERMODE_UP,10,0);//10ms TIM1_ITConfig(TIM1_IT_UPDATE, ENABLE); TIM1_Cmd(ENABLE); }

固件库里面有的,另外你把寄存器都写成零是不对的,应该把使能位置零。

如果LockFlag的初始值为0,就不会进入if (LockFlag)条件中的LockFlag++,所以LockFlag变量就一直不会自加,你应该把自加代码放在if (LockFlag)外面,如下: if(LockFlag) { } LockFlag++;

在程序完全正确的情况下,还要根据所用的编程软件设置选项字节的。

void TIM1_Config(void) { TIM1_DeInit(); TIM1_TimeBaseInit(15, TIM1_COUNTERMODE_UP, 65535, 0);//600 Second TIM1_ITConfig(TIM1_IT_UPDATE, DISABLE); TIM1_ARRPreloadConfig(ENABLE); TIM1_Cmd(DISABLE); } void TIM2_Config(void) { TIM2...

void TIM1_Config(void) { TIM1_DeInit(); TIM1_TimeBaseInit(15, TIM1_COUNTERMODE_UP, 65535, 0);//600 Second TIM1_ITConfig(TIM1_IT_UPDATE, DISABLE); TIM1_ARRPreloadConfig(ENABLE); TIM1_Cmd(DISABLE); } void TIM2_Config(void) { TIM2...

103的代码可以直接到003用,EEPROM大小有点区别,稍注意下,其它没有区别的。再检查下代码,如果103上有,003没,检查硬件

TIM1_EGR=0x01;//初始化TIM1TIM1时基初始化TIM1_EGR|=0x20;//重新初始化TIM1TIM1_PSCRH=0;//预分频设置PWM频率TIM1_PSCRL=0;TIM1_ARRH=0x0F;//设定重装载值TIM1_ARRL=0x9F;TIM1_CR1=0x80;//边沿对齐,向上计数,带缓冲TIM1_RCR=0x01;//重复计数器T...

//用固件库方便些#include "stm8s_lib.h"#define CCR1_Val ((u16)2047) #define CCR2_Val ((u16)1535) #define CCR3_Val ((u16)1023) #define CCR4_Val ((u16)511) void main(void) { /* TIM1 Peripheral Configuration */ TIM1_DeInit(); /* Ti...

可以的,程序中进行初始化配置的时候,用库函数同时使能和关断这两个定时器就可以了。

网站地图

All rights reserved Powered by www.dftb.net

copyright ©right 2010-2021。
www.dftb.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com