STM32f103 —— timer

#ifndef _TIMER_H_
#define _TIMER_H_#include "stm32f10x.h"
#include "type.h"// LED定时器,按键定时器,重发定时器
#define LED_TIMER           TIM1
#define LED_TIMER_DIV       7200
#define LED_TIMER_PERIOD    2500#define PWM_TIMER           TIM2#define RESEND_TIMER        TIM3
#define RESEND_TIMER_DIV    7200  
#define RESEND_TIMER_PERIOD 2500#define KEY_TIMER           TIM4
#define KEY_TIMER_DIV       7200
#define KEY_TIMER_PERIOD    200void TimerNvicConfig(void);
void TimerConfig(TIM_TypeDef *timer, uint16_t div, uint16_t period);
void TimerEnable(TIM_TypeDef *timer);
void TimerDisable(TIM_TypeDef *timer);#endif /* _TIMER_H_ */#include "stm32f10x_tim.h"
#include "stm32f10x_rcc.h"
#include "timer.h"/*
*  三个定时器: 1 灯色   2 按键  3 重发
*/
void TimerNvicConfig(void)
{NVIC_InitTypeDef NVIC_StructInit;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_StructInit.NVIC_IRQChannel = TIM1_UP_IRQn;NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE;NVIC_StructInit.NVIC_IRQChannelPreemptionPriority = 0;NVIC_StructInit.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_StructInit);NVIC_StructInit.NVIC_IRQChannel = TIM2_IRQn;NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE;NVIC_StructInit.NVIC_IRQChannelPreemptionPriority = 1;NVIC_StructInit.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_StructInit);NVIC_StructInit.NVIC_IRQChannel = TIM3_IRQn;NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE;NVIC_StructInit.NVIC_IRQChannelPreemptionPriority = 2;NVIC_StructInit.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_StructInit);NVIC_StructInit.NVIC_IRQChannel = TIM4_IRQn;NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE;NVIC_StructInit.NVIC_IRQChannelPreemptionPriority = 3;NVIC_StructInit.NVIC_IRQChannelSubPriority = 1;NVIC_Init(&NVIC_StructInit);
}void TimerConfig(TIM_TypeDef *timer, uint16_t div, uint16_t period)
{TIM_TimeBaseInitTypeDef TIM_StructInit;if(LED_TIMER == timer){RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);}else if(RESEND_TIMER == timer){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);}else if(KEY_TIMER == timer){RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);}TIM_StructInit.TIM_Period = period;TIM_StructInit.TIM_Prescaler = div;TIM_StructInit.TIM_ClockDivision = TIM_CKD_DIV1; /* 数字滤波器采样频率 */TIM_StructInit.TIM_CounterMode = TIM_CounterMode_Up; /* 向上计数 */TIM_StructInit.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(timer, &TIM_StructInit);TIM_ITConfig(timer, TIM_IT_Update, ENABLE); /* 允许中断 */TIM_ClearFlag(timer, TIM_FLAG_Update); /* 更新定时器会产生更新时间,清除标志位 */
}void TimerEnable(TIM_TypeDef *timer)
{TIM_Cmd(timer, ENABLE);
}void TimerDisable(TIM_TypeDef *timer)
{TIM_Cmd(timer, DISABLE);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用monkey命令来打开一个app

Knowin inSight10:/ # pm packge list adb shell monkey -p com.aispeech.player.eng -v 1

scp和sftp常用操作

文件异地直接复制: scp SCP的全称是secure copy (remote file copy program),此命令是openssh-clients附带的,它的作用就是在机器之间实现拷贝,且机器之间的传输完全是加密的。 最简单的 scp 用法如下: [rootwww ~]# scp [-pr] [-…

大脑最佳用法

用计算机的模式来比喻大脑,那么应该是CPU内存. 但更多时候,我们将大脑当硬盘用. 大脑真正应该用于思考,记忆功能可以使用笔记本或数字工具来记录. 这是我学习时间管理的一个收获,希望时间管理理念能够在未来给我更多的帮助.转载于:https://blog.51cto.com/owen/165727

SM7250(高通5G)平台LCD bringup

写在前面的话高通平台显示这一块,自从去年开始,高通全面使用SMxxxx命名的芯片比如高端系列:SM8350(骁龙888),SM8250(骁龙865),SM8150(骁龙855)中端系列:SM7250(骁龙765g)&#xff0c…

网络管理人员的未来?

这是流传已久的一张带讽刺性的照片。一名网络专业的学生的未来难道真会如此?或者,是某些人理解错了这个专业的诸多特性?转载于:https://blog.51cto.com/zhangbikai/166694

python笔记-1(import导入、time/datetime/random/os/sys模块)

python笔记-6(import导入、time/datetime/random/os/sys模块) 一、了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可。其它内容待日后有深入理解了再来细说 1、import可以导入的两种不同的内容 1.1 *.py文件…

嵌入式里如何给内存做压力测试?不妨试试memtester

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是内存读写正确性压力测试程序memtester。在嵌入式系统中,内存(RAM)的重要性不言而喻,系统性能及稳定性都与内存息息相关。关于内存性能有很多个不同指标&#xff0…

一位嵌入式工程师的成长之路

有些事并不是因为有希望才去坚持,而是因为坚持了才有希望。分享一位嵌入式工程师的成长之路,希望能给朋友一点勉励。刚毕业找不着工作2008年大专毕业后,意气风发南下深圳找工作,想找一份电子技术员的工作,白天上班&…

网络规划设计师考试说明

网络规划设计师考试说明 --------------------------------------------------------------------------------1.考试要求(1)系统掌握数据通信基本原理;(2)系统掌握计算机网络的原理;(3&#xf…

amd,cmd规范

AMD 和 CMD 的区别有哪些? AMD规范与CMD规范的区别 回顾:前端模块化和AMD、CMD规范(全) 浅析JS模块规范:AMD,CMD,CommonJS 理解AMD ,CMD,CommonJS规范 Javascript模块化编…

分享GitHub上一些嵌入式相关的高星开源项目

关于GitHub,可能很多人误以为这是互联网人的专属,其实并不是,那上面嵌入式相关的开源项目是有很多的。现分享一些高星开源项目(像RT-Thread、AWTK等大家都熟知的就不介绍了):Avem项目链接:https…

安全四部曲之一---***工具简单使用

所需工具:ASP小旋风5.asp(黑防)鸽子2006ie_xpsp2网马生成器##############Michael分割线################先给大家几个外网路由的地址你们进去捣乱捣乱,没事的,因为没有日志记录用户名密码 全都是admin,别搞太破坏哦如果改动里面的设置,记得把登录密码改了,否则他们…

三角形的内点

打开连接 皮克定理 以及 斜边的整点数为gcd(n,m)1 皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以表示为2S2ab-2,其中a表示多边形内部的点数,b表示多边形边界上的点数,S表示多边形的面积。代码如下&#xff…

第 8 章 配置listener监听器

第 8 章 配置listener监听器注意 还记得我们之前讲过的在线列表吗?第 4.2 节 “例子:在线列表”。我们曾经说过那个在线列表无法判断用户非法退出,很可能造成在线列表无限增大,现在我们可以用listener来弥补这一问题了。如果你不满…

集合(collection)

使用数组存放数据的弊端:长度不可变,而集合可以动态的添加值 java集合类不仅可以存储数量不等的多个对象,还可以保存具有映射关系的关联数组 /* * 1.存储对象可以考虑:①数组 ②集合 * 2.数组存储对象的特点:Student[]…

聊培训跳槽的事

■原来跟我沟通有压力这是我最近跟一个微信好友聊天才知道的事情,说跟我沟通还挺有压力的。实话说,我多少对这样的感觉感同身受,记得刚毕业那会,跟我师傅聊天说事情,总担心自己会说错了什么,有问题的时候也…

《我的成长》6月下2009年第7期(总第7期)

记录:闲逛四季花城——090606描述:今日跟着小鸟去四季花城看房,中途路过大半年没去的滢水山庄、万家灯火。花城很美,滢水山庄、万家灯火变化很大。感悟:花城虽美,但买房的事情短时间内负担不起,…

iOS开发针对对Masonry下的FPS优化讨论

今天博客的内容就系统的讨论一下Masonry对FSP的影响,以及如何更好的使用Masonry。如果你对iOS开发足够熟悉的话,那么对Masonry框架应该不陌生。简单的说,Masonry的诞生让AutoLayout的使用更为优雅,让控件的布局更为方便。使用辩证…

导师带学生卡Bug,这波操作~

本文来自知乎https://www.zhihu.com/question/455891395/answer/1847953969事情的起因是明尼苏达大学计算机科学&工程系的助理教授 Kangjie Lu 和他的 Ph. D. 学生 Qiushi Wu 的论文《通过伪君子提交在开源软件中隐蔽地引入漏洞的可行性》,据称将在 2021 年五月…