12下一页

[问答] stm32的通用定时器延时问题,本来定时500ms,实际上都有4s了

[复制链接]

等待验证会员

发表于 2016-11-15 22:02:40   516 查看 24 回复 显示全部楼层 倒序浏览
分享
#include "sys.h"
#include "delay.h"
#include "led.h"
#include "timer.h"

int main()
{
         Stm32_Clock_Init(9);
         delay_init(72);
         tim3_init(4999,7199);  //频率10K,计数5k,500ms
         led_init();
while(1)
{
       
PC1=!PC1;   //LED1翻转
        delay_ms(500);

}
}



#include "timer.h"
#include "sys.h"
#include "led.h"
void tim3_init(u16 arr,u16 psc)
{
  RCC->APB1ENR|=1<<1;  //使能时钟
       
        TIM3->PSC|=psc;  //分频  频率10K
        TIM3->ARR|=arr;   //计数器自动转载值     计数5k次
        TIM3->DIER|=1<<0;   //允许跟新中断
        MY_NVIC_Init(2,0,TIM3_IRQn,2);//中断分组配置
        TIM3->CR1|=1<<0;  //使能定时器
       

}


void TIM3_IRQHandler(void)
{


if(TIM3->SR&0X0001)//溢出中断
{

        PC0=!PC0;//LED0翻转

}

TIM3->SR&=~(1<<0);

}



标签:定时器 通用 stm32
头像被屏蔽

禁止发言

发表于 2016-11-15 22:06:41  
提示: 作者被禁止或删除 内容自动屏蔽
回复

点赞

高级工程师

发表于 2016-11-16 07:31:59   来自发烧友APP
有意思,哈哈哈哈
回复

点赞

技术员

发表于 2016-11-16 08:09:37   来自发烧友APP
你用滴答定時试试!
回复

点赞

总工程师

发表于 2016-11-16 08:45:28  
是不是系统时钟的事?
回复

点赞

助理工程师

发表于 2016-11-16 13:17:55  
目测是系统时钟不对
回复

点赞

等待验证会员

发表于 2016-11-16 19:28:41    楼主|
superassent 发表于 2016-11-16 08:09
你用滴答定時试试!

滴答定时器没问题,用滴答延时准确
回复

点赞

等待验证会员

发表于 2016-11-16 19:30:32    楼主|
lee_st 发表于 2016-11-16 08:45
是不是系统时钟的事?

我也觉得是这个,可是找不到问题。底下是倍频函数,用的是原子的
void Stm32_Clock_Init(u8 PLL)
{

        unsigned char temp=0;   
        MYRCC_DeInit();                  //复位并配置向量表
        RCC->CR|=0x00010000;  //外部高速时钟使能HSEON
        while(!(RCC->CR>>17));//等待外部时钟就绪
        RCC->CFGR=0X00000400; //APB1=DIV2;APB2=DIV1;AHB=DIV1;
        PLL-=2;                                  //抵消2个单位(因为是从2开始的,设置0就是2)
        RCC->CFGR|=PLL<<18;   //设置PLL值 2~16
        RCC->CFGR|=1<<16;          //PLLSRC ON
        FLASH->ACR|=0x32;          //FLASH 2个延时周期
        RCC->CR|=0x01000000;  //PLLON
        while(!(RCC->CR>>25));//等待PLL锁定
        RCC->CFGR|=0x00000002;//PLL作为系统时钟         
        while(temp!=0x02)     //等待PLL作为系统时钟设置成功
        {   
                temp=RCC->CFGR>>2;
                temp&=0x03;
        }   
}                    

回复

点赞

总工程师

发表于 2016-11-17 00:09:10  
我也遇到过用原子的,在自己的板子上,串口波特率是设定的一半,是系统主频的事
回复

点赞

总工程师

发表于 2016-11-17 00:13:42  
仔细查查系统时钟设置
回复

点赞

助理工程师

发表于 2016-11-17 10:42:33  
                 
回复

点赞

等待验证会员

发表于 2016-11-17 21:27:51    楼主|
lee_st 发表于 2016-11-17 00:13
仔细查查系统时钟设置

系统时钟就这个倍频配置,另外滴答定时正常
回复

点赞

总工程师

发表于 2016-11-18 00:15:02  
PLL的参数配置看看
回复

点赞

总工程师

发表于 2016-11-18 00:46:23  
或者,自己从新建个工程
回复

点赞

总工程师

发表于 2016-11-18 00:47:08  
不要只撞一棵树上
回复

点赞

等待验证会员

发表于 2016-11-19 16:30:48    楼主|
lee_st 发表于 2016-11-18 00:47
不要只撞一棵树上

        改成 TIM3->ARR=arr; 就好了
这个地方为什么不能用  TIM3->ARR|=arr;  呢?
复位值不是0X0000么?
回复

点赞

实习生

发表于 2016-11-19 20:39:56  
你这个写程序的风格我不赞成,如果程序写大了,你这样直接写寄存器的风格会害死人的。
估计是系统时钟没设置好,倍频没有设置。建议:网上现成的例程很多,找个自己看得懂的,库函数写的,试试吧,总有一款适合你的
回复

点赞

工程师

发表于 2016-11-19 21:23:26  
PLL的参数配置看看
回复

点赞

总工程师

发表于 2016-11-19 21:40:30  
找个好用的先参考
回复

点赞

技术员

发表于 2016-11-19 23:26:33  
使用系统滴答时钟,不失精准,同时函数调用也非常方便。
回复

点赞

12下一页
高级模式
您需要登录后才可以回帖 登录 | 注册

专家问答 查看更多>>
关闭

站长推荐 上一条 /6 下一条

小黑屋|手机版|Archiver| 电子发烧友 ( 粤ICP备14022951号-2 )     

GMT+8, 2017-3-29 13:28 , Processed in 0.181192 second(s), 16 queries , Memcache On.

微信扫描
快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

单片机论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

-

硬件设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PCB设计论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

树莓派论坛

智能硬件论坛

开发快智能硬件开发平台

Intel物联网开发者专区

Waveshare

乐美客SBC专区

Arduino论坛

BeagleBone论坛

机器人论坛

创客神器NanoPi

小钢炮CANNON

比派科技banana pi专区

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

个人版区

阿东Verilog技术专版

直流马达驱动电路设计

LabVIEW英雄联盟

特权同学FPGA专区

-

厂商专区

灵动微电子 MM32

盈鹏飞嵌入式

TI论坛

TI Deyisupport社区

芯灵思嵌入式论坛

Tisan

米尔科技

庆科社区

WIZnet技术专区

Cypress技术论坛

飞凌嵌入式

Qualcomm技术论坛

英创嵌入式

机智云GoKit论坛

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区