STM32/STM8技术论坛
直播中

李星童

7年用户 1019经验值
私信 关注
[问答]

Keil在线仿真逻辑分析仪的问题



为了表达问题,cubemx做了一个小程序。程序很简单就是main函数下面死循环执行
  while (1)
  {

  HAL_Delay(1000);

   HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);


  }

预计是1S时间翻转一次LED。因为 HAL_Delay是1ms基础。
但是逻辑分析仪看PB9的电平 基本是0.1S翻转一次呢
解决:
KEIL设置时钟72M改为8M

回帖(17)

李海洪

2018-12-24 09:05:00
KEIL的仿真时钟配置正常了么?是72Mhz么?你的时钟是72么?
举报

高颖

2018-12-24 09:21:54
是不是要确认下始终配置?
举报

张林

2018-12-24 09:40:56
本帖最后由 lospring 于 2018-5-15 20:49 编辑

这个要看时钟的吧,不同时钟和芯片每个指令的时间是不一样的。
举报

史乃原

2018-12-24 09:49:38
STM32CubeMX配置STM32F103的默认频率是8M,不是最高的72M。如果这没有重新配置的话,就会产品延时不准的情况。
举报

李维嘉

2018-12-24 10:09:03
本帖最后由 toofree 于 2018-5-16 12:43 编辑

把你的工程发上来。系统时钟是多少看了吗?

之前在标准库,无聊了也软件仿真,看过逻辑分析仪波形,未有你说的现象。

难道用了个HAL库就有问题了?不可思议。
还是用工程说话
(我的软仿真不知道怎么回事,在HAL_Delay前加断点停不住,只好在while处加的断点)

举报

李飞

2018-12-24 10:23:27
受到警告
提示: 作者被禁止或删除 内容自动屏蔽
举报

卢家辉

2018-12-24 10:34:48
基本就是时钟问题啦,楼上的都说的差不多了!!!
举报

凌流浪

2018-12-24 10:51:08
用示波器量一下管脚的波形->如果波形翻转时间不是1S,代码问题(可能性不大); 如果确实1S  --> KEIL调试时钟配置问题(这种可能性极大).
举报

李星童

2018-12-24 11:07:59
引用: vyewrewr 发表于 2018-12-24 13:39
STM32CubeMX配置STM32F103的默认频率是8M,不是最高的72M。如果这没有重新配置的话,就会产品延时不准的情况。

我是72M的 看看今天更新的连接 几分钟的视频
举报

李星童

2018-12-24 11:13:59
引用: zhouxk 发表于 2018-12-24 13:58
本帖最后由 toofree 于 2018-5-16 12:43 编辑

把你的工程发上来。系统时钟是多少看了吗?

哦 看来你的delay1000就是1S 没问题 我的是0.1S 还没找到原因看看你的keil设置看看
举报

史乃原

2018-12-24 11:30:44
本帖最后由 Angel_YY 于 2018-5-16 14:01 编辑

按照楼主的设置,确实是这个情况。解决方案如下:

默认这里设置的是72M,改为8M就正常了,因为STM32CubeMx中外部晶振设置的是8M。亲测没问题了。
举报

史乃原

2018-12-24 11:40:51
引用: 山川1998 发表于 2018-12-24 15:03
哦 看来你的delay1000就是1S 没问题 我的是0.1S 还没找到原因看看你的keil设置看看

楼主修改仿真参数试试。按照12楼说的额。
举报

李维嘉

2018-12-24 11:48:04

刚跑他的程序,也发现这个问题。

都是不按套路出牌呀
举报

李星童

2018-12-24 11:54:53

成功了 问题找到了 谢谢
举报

史乃原

2018-12-24 12:00:52

不跑一遍程序,不好发现问题
举报

史乃原

2018-12-24 12:11:24

问题解决了就好
举报

alonggege

2019-7-29 09:58:15
不错,很好的经验分享,辛苦麻烦了,欠缺这方面的资料,非常感谢。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分