• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32F103 定时器变慢

FEItwo 2019-02-28 浏览量:2222
STM32F103 利用定时器设置按键带长按功能和短按键,按键按键是系统关机,短按只是控制led亮灭。但是有时总会出现长按按键变成了控制led,长按时间也足够的长,在观察led的亮灭的频率也变慢,是时钟频率变慢了?最后不能关机只能复位或重新烧录了。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 先确定程序中有没有对芯片的时钟进行过修改,要是没有,就是你的逻辑的问题,可能是一些逻辑进行了for的延时,你判断长还是短按的过程中的延时不对才会到导致你的时间不对的。

    要进行仿真,或是列出你的程序代码

    • 发布于 2019-02-28
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:9

  • 这个估计是你逻辑上出现了一些问题导致了这种现象的发生
    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 先排除系统频率的问题,再看看即使不是延时的函数写得不对?

    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种最好硬件仿真确定问题,此外,那个延时函数不要出现在中断里面
    • 发布于2019-02-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 是不是切换到时钟了,或者pll系数修改过了
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 怎么会发生变慢 呢,在运行中是不是有哪里改动过频率;或者哪里有异常的延时。
    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果你的程序里,没有对单片机的时钟进行修改操作的话,

    我觉得应该是你中断的问题。

    个人猜测:很有可能是其他的中断影响了串口中断的执行。

    或者是while(1)里面的其他的程序严重阻塞了程序的执行。

    你可以试试屏蔽掉无关的代码,进行调试试试。

    • 发布于2019-03-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 主要应该是时钟的配置问题了,定时器要是没有修改,应该是晶振的问题了
    • 发布于2019-03-17
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32F103 定时器变慢