stm8s 定时器2使用

来源:本站
导读:目前正在解读《stm8s 定时器2使用》的相关信息,《stm8s 定时器2使用》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《stm8s 定时器2使用》的详细说明。
简介:最近开始使用stm8s103k单片机,今天记录一下它的定时器2的使用。首先需要说明一下,stm8s的中午手册里面写着TIM2 16位向上计数,这个是错误的。
stm8s定时易于使用,首先设定定时器的时钟频率,知道了定时器的时钟周期T,那么定时时间Tn就确定了,即 Tn = T * ARR(自动装载数据)。


程序如下:

1、单片机时钟设定:

//fmaster=fcpu=2MHz

CLK_ECKR=0x00;

CLK_ICKR=0x01;

CLK_CMSR=0xe1;

CLK_SWR=0xe1;

CLK_CKDIVR=0x18;

2、定时器TIM2初始化

//定时器2初始化fmaster/分频=2M/2=1M,1us计数一次,50us 中断一次

void TIM2_Init(void)

{

_asm("sim"); //sim是禁止中断

TIM2_IER = 0x00; //禁止中断

TIM2_EGR =0x01; //允许产生更新标志

TIM2_PSCR =0x01; //设置时钟分频 2M/2=1MHz---1us

TIM2_ARRH = 0x00; //0x32=50; 周期=50次,每50us复位一次定时器2

TIM2_ARRL = 0x32; //ARR自动装载值,每1us递减1

TIM2_CNTRH=0x00; //初值

TIM2_CNTRL=0x00;

TIM2_CR1 |= 0x81; //开启定时器

TIM2_IER |= 0x01; //允许中断

_asm("rim"); //rim使能中断

}

3、中断执行程序

@far @interrupt void TIM2_UPD_IRQHandler(void)

{

TIM2_SR1 &=~(0x01);//=0x0e;//清楚中断标志位

PC_ODR=~PC_ODR;//需要先配置pc,pb为输出口

PB_ODR=~PB_ODR;

}

4、修改中断向量表

打开stm8_interrupt_vector.c文件,添加如下内容:

extern @far @interrupt void TIM2_UPD_IRQHandler(void);

修改下面一行:

{0x82, NonHandledInterrupt},

为:

{0x82,(interrupt_handler_t)TIM2_UPD_IRQHandler},

到此OK了,可以试试。

在我操作过程中,遇到一个很头疼的问题,就是下载器常常不好用,错误号30006,30003.

这两种情况下,首先确认你的stlink接线是否正确,其次量一下4根下载针电压,正确为:5V,Gnd,NRST-5V,SWIM-0v,(大致如此)。如果没有上面的问题,就可能是下载器和电脑没有连接好。需要重新软件连接和确认(Target-setting)。

提醒:《stm8s 定时器2使用》最后刷新时间 2024-03-14 01:09:40,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《stm8s 定时器2使用》该内容的真实性请自行鉴别。