5632|9

68

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

《AlientekSTM32开发板》定时器中断实验--整理后 [复制链接]




1.注意我们的教材讲解是基于寄存器操作方便初学者理解透彻,


2.我们另外还提供了该实例的库函数源码

下载链接:https://bbs.eeworld.com.cn/icview-210815-1-1.html

3.此实验的教程在《Alientek STM32不完全手册》的 3.7节:


     下载地址:《Alientek STM32不完全手册》
4.源码: SC=psc;
//预分频器7200,得到10Khz的计数时钟
//这两个东东要同时设置才可以使用中断
TIM3->DIER|=1<<0;
//允许更新中断
TIM3->DIER|=1<<6;
//允许触发中断
TIM3->CR1|=0x01;
//使能定时器3
MY_NVIC_Init(13TIM3_IRQChannel2);//抢占1,子优先级3,组2
}

该文件下包含一个中断服务函数和一个定时器初始化函数,中断服务函数比较简单,在每次中断后,判断TIM3的中断类型,如果中断类型正确,则执行LED1DS1)的取反。
Timerx_Init函数就是执行我们上面介绍的那5个步骤,使得TIM3开始工作,并开启中断。该函数的2个参数用来设置TIM3的溢出时间。因为我们在Stm32_Clock_Init函数里面已经初始化APB1的时钟为2分频,所以,TIM3的时钟为76M,再根据我们设计的arrpsc的值,就可以计算中断时间了。计算公式如下:

Tout=Tclk/psc*arr
其中:
TclkTIM3的计数时钟(单位为Khz)。
ToutTIM3溢出时间(单位为ms)。
我们将timer.c文件保存,然后加入到HARDWARE组下。接下来,在timer.h文件里,我们输入如下代码:
#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"
//Mini STM32开发板
//定时器
驱动代码
//正点原子@ALIENTEK
//2010/6/1
void Timerx_Init(u16 arru16psc);
#endif
关于这部分代码,我们不多说了。
最后,我们修改main函数如下:
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72);
//延时初始化
uart_init(729600);
//串口初始化
LED_Init();
//初始化与LED连接的硬件接口
Timerx_Init(50007199);//10Khz的计数频率,计数到5000500ms
while(1)
{
LED0=!LED0;
delay_ms(200);
}
}
这里的代码和之前大同小异,此段代码对TIM3进行初始化之后,进入死循环等待TIM3溢出中断,当TIM3_CNT的值等于TIM3_ARR的值的时候,就会产生TIM3的更新中断,然后在中断里面取反LED1TIM3_CNT再从0开始计数。
3.7.4
下载与测试

在完成软件设计之后,我们将编译好的文件下载到MiniSTM32开发板上,观看其运行结果是否与我们编写的一致。如果没有错误,我们将看DS0不停闪烁(每400ms闪烁一次),而DS1也是不停的闪烁,但是闪烁时间较DS0慢(1s一次)。

店铺:http://shop62057469.taobao.com/
技术支持论坛:www.openedv.com
QQ讨论群:95288038(验证:21ic)
QQ:389063473/ 497610476

图3.3.4.1 串口调试助手收到的信息.jpg (63.75 KB)

图3.3.4.1 串口调试助手收到的信息.jpg

此帖出自stm32/stm8论坛

最新回复

                                 很好的参考资料  详情 回复 发表于 2011-3-11 16:19
点赞 关注
 

回复
举报

56

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 谢谢!!!!!!!!!!!!!!!!!!!!!
此帖出自stm32/stm8论坛
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 资料不错
此帖出自stm32/stm8论坛
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 呵呵,不错,正是我需要的。
此帖出自stm32/stm8论坛
 
 
 

回复

53

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 很好的资料,很有用
此帖出自stm32/stm8论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 还不错的资料
此帖出自stm32/stm8论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 很好的资料
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
                                 mark,谢谢
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 很好的参考资料
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表