STM32定时器溢出模式设置

来源:互联网 发布:帝国时代mac版 编辑:程序博客网 时间:2024/05/17 23:12

环境: 主机:WIN7 
开发环境:MDK4.23 MCU:STM32F103CBT6 
 
源代码1: 
说明:定时器采用TIM2,时钟源为内部8M晶振,向上溢出模式.此定时器用在延时函数,最小可以延时1us,故没有采用中断形式定时. 初始化代码: 
[cpp] view plaincopy 
1. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);   2. //重新将Timer设置为缺省值   3. TIM_DeInit(TIM2);   
4. //采用内部时钟给TIM2提供时钟源   5. TIM_InternalClockConfig(TIM2);   6.    
7. timInitStruct.TIM_ClockDivision = TIM_CKD_DIV2;             //定时器
基准频率8MHz   
8. timInitStruct.TIM_Prescaler = 8 - 1;                        //计数频
率为1us跳转1次   
9. timInitStruct.TIM_CounterMode = TIM_CounterMode_Up;         //向上计
数   
10. timInitStruct.TIM_RepetitionCounter = 0;   








        require.async(['wkcommon:widget/ui/lib/sio/sio.js'], function(sio) { var url = 'https://cpro.baidustatic.com/cpro/ui/c.js'; sio.callByBrowser( url, function () { BAIDU_CLB_fillSlotAsync('u2845605','cpro_u2845605'); } ); });    














 
 
11. timInitStruct.TIM_Period = 0;                               //这个值
实际上就是TIMX->ARR,延时开始时重新设定即可   12.    
13. TIM_TimeBaseInit(TIM2, &timInitStruct);   
14. TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);                  //计数溢
出时触发中断   
15. TIM_Cmd(TIM2, ENABLE);                                      //开启计
数器   
 
延时函数代码: 
[cpp] view plaincopy 
1. //延时1us   2. //最大65536us   
3. void _delay_us(uint16_t t)   4. {   
5.     TIM_SetCounter(TIM2,0);   6.     TIM_SetAutoreload(TIM2,t - 1);   7.     //等待时间到   
8.     while (TIM_GetITStatus(TIM2,TIM_FLAG_Update) == 0);   9.     //停止计数   
10.     TIM_SetAutoreload(TIM2,0);   11.     //清中断标志   
12.     TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);   13. }   14.    
15. //延迟1ms   16. //最大65ms   
17. void _delay_ms(uint8_t t)   18. {   19.        
20.     if (t > 65)   21.     {   
22.         t = 65;   23.     }   
24.     _delay_us(t * 1000);   25. }   
  
源代码2: 








 var cpro_psid ="u2572954"; var cpro_pswidth =966; var cpro_psheight =120;














 
 
说明:定时器采用TIM3,时钟源为内部8M晶振,向上溢出模式.此定时器用在长时间计时,最小计时间隔为100us,故采用中断形式定时. 初始化代码: 
[cpp] view plaincopy 
1. //中断NVIC设置:允许中断,设置优先级   
2. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);   
3. NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;             //更新事
件   
4. NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;   //抢占优
先级0   
5. NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;          //响应优
先级1   
6. NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;             //允许中
断   
7. NVIC_Init(&NVIC_InitStructure);                             //写入设
置   8.    
9. RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);   10. //重新将Timer设置为缺省值   11. TIM_DeInit(TIM3);   
12. //采用内部时钟给TIM3提供时钟源   13. TIM_InternalClockConfig(TIM3);   14.    
15. timInitStruct.TIM_ClockDivision = TIM_CKD_DIV2;             //定时器
基准频率8MHz   
16. timInitStruct.TIM_Prescaler = 800 - 1;                      //计数频
率为100us跳转1次   
17. timInitStruct.TIM_CounterMode = TIM_CounterMode_Up;         //向上计
数   
18. timInitStruct.TIM_RepetitionCounter = 0;   
19. timInitStruct.TIM_Period = 0;                               //这个值
实际上就是TIMX->ARR,延时开始时重新设定即可   20.    
21. TIM_TimeBaseInit(TIM3, &timInitStruct);   22. //清溢出中断标志   
23. TIM_ClearFlag(TIM3, TIM_FLAG_Update);   24. //禁止ARR预装载缓冲器   








下载文档到电脑,查找使用更方便
0下载券  109人已下载




下载








还剩1页未读,继续阅读
















定制HR最喜欢的简历


我要定制简历


.zCxyTf {margin: 20px auto 30px;text-align: center;}.zCxyTf .Usyjzb {margin-bottom: 20px;}.zCxyTf .doALFQ {margin-right: 10px;font-size: 14px;color: #333;}.zCxyTf .gAWbYF {font-size: 13px;color: #666;}.zCxyTf .yIxTOl {display: inline-block;border: 1px solid #2fad85;border-radius: 2px;}.zCxyTf .yIxTOl a {display: block;padding: 12px 24px;font-size: 18px;color: #2fad86;background-color: #fff;}.zCxyTf .yIxTOl a:hover {color: #fff;background-color: #2fad85;text-decoration: none;}「天猫」stm32通用定时器,品牌精选!速速抢购!广告查看详情(function(win){win.ecom = win.ecom || {};win.ecom.pl2 = win.ecom.pl2 || {};win.ecom.pl2.imTimesign = parseInt("49" || 0, 10);win.ecom.pl2.searchId = "0348868b46c8205d";})(window);(function(a){function b(d){var c=location.href.match("debug=1");var g=window.jQuery||{};if(!c){try{d(a.pl2,g)}catch(f){}}else{d(a.pl2,g)}}a.pl2.run=function(d,c){if(c||arguments.length==1){bds.ready(function(){b(d)})}else{b(d)}};a.pl2.q=function(f,g){g=g||document;if(g.getElementsByClassName){return g.getElementsByClassName(f)}else{var d=[];var c=g.all||g.getElementsByTagName("*");var e=c.length;f=f.replace(/\-/g,"\\-");var h=new RegExp("(^|\\s)"+f+"(\\s|$)");while(--e>=0){if(h.test(c[e].className)){d.push(c[e])}}return d}}})(window.ecom);(function(v){var h=undefined,g=undefined;var l=0,k=0;var e=0;var o=0;var i=0;var d=0;var m=0;var b=0;var t=0;var r=/link\?url\=([^\&]+)/;var n=/\?url\=([^\.]+)\./;function s(){var y=t.href;var x=r.exec(y)||n.exec(y);return x?x[1]:false}function u(z){var x=s();if(x!==false){var y=q(x,z);p(y)}}function p(z){var x="&ck="+[z,e,b,l,k,h,g,m].join(".");if(t.href){var y=t.href;if(y.indexOf("&ck=")==-1){t.href+=x}else{t.href=y.replace(/&ck=[\d.]*/,x)}}}function q(A,C){var B=0;for(var z=0;z<(((e*C)%99)+9);z++){var y=A.length<20?A.length:20;B+=A.charCodeAt((b*z)%A.length)}return B}function w(x){x=x||window.event;e++;if(h===undefined){h=x.clientX}if(g===undefined){g=x.clientY}o=new Date().getTime()}function f(y,x){y=y||window.event;t=y.target||y.srcElement;while(t&&t.tagName!="A"){t=t.parentNode}i=new Date().getTime();b=9999;l=y.clientX;k=y.clientY;if(o===0){m=0}else{m=i-o}u(x)}function j(y,x){d=new Date().getTime();b=d-i;u(x)}function c(C,z,B){var A,x,y;for(y in z){A=z[y];x=B[y];if(window.attachEvent){C.attachEvent("on"+A,x)}else{C.addEventListener(A,x,false)}}}function a(x){return[function(y){w(y)},function(y){f(y,x)},function(y){j(y,x)}]}v.ck=function(B,A){if(B.length===undefined){B=[B]}var x=B.length;var y=0;var z=a(A);for(;y<x;y++){c(B[y],["mouseover","mousedown","mouseup"],z)}}})(window.ecom.pl2);window.ecom.pl2.run(function(c){var e=c.q("qZEPbs");for(var b=0;b<e.length;b++){var a=e[b];var d=a.getElementsByTagName("A");c.ck(d,window.ecom.pl2.imTimesign)}},false);




            /* pc阅读页3-4页间(新) */
            var cpro_id = "u2845472";
        













原创粉丝点击