stm32f303 调试模式下程序正常跑,下载后再跑就出错

孤傲猎人 2016-01-25 09:53:42
利用stm32f303采集心电数据, 调试模式下程序全速运行可以正常工作,采集的数据是对的,但是当下载后(脱离了调试环境),再运行采集的数据都是错的,而且返回数据的速度比正常情况下快多了,请教各位这是由于什么原因导致的,该怎么解决?谢谢!
...全文
1622 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46308001 2021-07-27
  • 打赏
  • 举报
回复

RESET and RUN没有勾选的原因 ,你做了一次假下载

m0_37266245 2018-06-03
  • 打赏
  • 举报
回复
可悲,这种低级的错误我刚刚就犯了,贴出来,方便后面的兄弟解决问题!
fly 100% 2016-02-29
  • 打赏
  • 举报
回复
debug  运行速率应该是会比时间运行速率低的  
孤傲猎人 2016-02-28
  • 打赏
  • 举报
回复
这个问题的原因是这样的,之前说的不是很正确,原来不是调试和正常运行的问题,板子上电运行不正常,但是手动复位后就可以正常运行,无论调试模式还是正常运行模式都是这样,请教各位这是什么原因导致的,该怎么解决呢?
woshi_ziyu 2016-02-14
  • 打赏
  • 举报
回复
调试模式和正常运行的状态不一致
然未觉 2016-02-14
  • 打赏
  • 举报
回复
系统时钟改变的话感觉有一种情况,就是SystermInit()在初始化系统时钟的时候会判断外部晶振是否起振的,有一个超时时间。如果超时后没有起振,会自动使用内部8m晶振。 你调试的时候是否用调试器供电了,是否是由于外部晶振正常运行没有起振造成的。 还有就是你的实时采集间隔时间是怎么做的,定时器,系统滴答延时,还是软延时?
孤傲猎人 2016-01-27
  • 打赏
  • 举报
回复
实现的功能就是stm32f3控制ADS1292进行心电信号的采集,然后通过蓝牙实时往终端传输数据。我设置了一些计数参数,看了一下内部,在下载后运行时内部程序运行的过程都是对的,是把完整的过程走下来了,但是往回传输数据的速度变得非常快(我感觉时钟变快了),采回的数画出的波形是错误的
C_Rabbit 2016-01-27
  • 打赏
  • 举报
回复
应该是仿真的晶振设置的和实际使用的晶振不一致 在j-link的设置里面查看一下,第二个页面 注意:即使该页面左上角的勾选框没有选,其仿真晶振设置也是起效的,如果勾选该选项时仿真出现错误警告的话,可以先勾选该选项,然后把晶振改成你用的数值,再取消该选项,是有效的
孤傲猎人 2016-01-27
  • 打赏
  • 举报
回复
仿真器是ulink2,晶振用的是HSI,8M,经PLL放大,放大16倍(64M),还是放大2倍(8M),都试过,都是一样的情况
dceacho 2016-01-26
  • 打赏
  • 举报
回复
printf到外设,看看内部在干什么 另外看看仿真和实际运行时的晶振是不是一样
孤傲猎人 2016-01-26
  • 打赏
  • 举报
回复
没有人遇到过这种情况吗,急,急,急!!!
孤傲猎人 2016-01-25
  • 打赏
  • 举报
回复
没有人回答吗

27,509

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧