OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9669|回复: 12

STM32F103烧录不能运行

[复制链接]

5

主题

13

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-11-21
在线时间
17 小时
发表于 2017-11-21 16:23:32 | 显示全部楼层 |阅读模式
2金钱
在给搭载全新的STM32F103C8T6芯片的开发板烧录程序的时候,发现它不能运行,只能够运行代码前面初始化的部分,即就是只能运行初始化IO的功能分配,不能运行其他逻辑代码的部分,烧录 了多次跟多块全新的芯片都一样的结果。一开始以为是程序问题。然后拿了一块某宝买的同芯片的最小系统,两个boot引脚都是一样,一烧录就能运行。(代码是在keil5下编译再通过ST-LINK V2烧录器烧录的,代码可以保证是一样的)
然后纠结了一晚,后来无解,只能把最小系统板上的芯片烧录好代码之后移植到开发板上,奇迹来了,通电运行没问题,一切正常,然后是测试烧录,发现也没问题,正常就是说在开发板上的硬件是没问题的,烧录也是没问题的,问题集中在芯片上。据说是芯片没有完全初始化起来,然后就想求助下大家有没有遇到过这样的问题
总结一下相同的部分:1、一样的代码,烧录器,编译环境什么都不变
2、芯片都是STM32F103C8T6
3、芯片boot1~2的引脚都是拉低
4、硬件部分确保一致,且不会虚焊什么的引脚也测量过正常

全新STM32F103C8T6芯片:
1.可以烧录进程序,但是只能运行代码前面初始化IO的部分,其他部分的代码一律不能运行


最小系统开发板上的芯片:
1.可以烧录进程序,可以完美运行,什么问题都没有发现
于是把这两块芯片吹下来互换在开发板上,发现最小系统的芯片移植过去后可以完美运行,可以重新烧录,重新烧录的程序也可以跑起来

但是全新的芯片换到最小系统板上还是一样,可以烧录,但是还是只能运行初始化部分的代码,其他的不能运行


求帮助

最佳答案

查看完整内容[请看2#楼]

问题已经解决,原因是BOOT1跟2两个选项,没有正确选择好
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

13

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-11-21
在线时间
17 小时
 楼主| 发表于 2017-11-21 16:23:33 | 显示全部楼层
问题已经解决,原因是BOOT1跟2两个选项,没有正确选择好
回复

使用道具 举报

4

主题

349

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1046
金钱
1046
注册时间
2017-5-19
在线时间
335 小时
发表于 2017-11-21 16:45:08 | 显示全部楼层
还求助啥,找供应商呀
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2017-2-6
在线时间
4 小时
发表于 2017-11-21 16:46:55 | 显示全部楼层
1111111
回复

使用道具 举报

5

主题

13

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-11-21
在线时间
17 小时
 楼主| 发表于 2017-11-21 17:14:47 | 显示全部楼层
据说是Bootloader的hex没烧录什么的,请问到底是什么问题怎么解决呢?
回复

使用道具 举报

9

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
253
金钱
253
注册时间
2016-5-4
在线时间
58 小时
发表于 2017-11-21 17:19:55 | 显示全部楼层
图片太小,重新上传
回复

使用道具 举报

5

主题

13

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-11-21
在线时间
17 小时
 楼主| 发表于 2017-11-21 17:30:28 | 显示全部楼层
本帖最后由 弹头 于 2017-11-21 17:31 编辑

file:///C:/Users/ADMINI~1/AppData/Local/Temp/baiduyunguanjia/onlinedit/cache/7efb2c182818deb0d37438d2f460ed47/1.png
1.png
2.png
3.png
4.png
5.png
回复

使用道具 举报

5

主题

13

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-11-21
在线时间
17 小时
 楼主| 发表于 2017-11-21 17:31:56 | 显示全部楼层
本帖最后由 弹头 于 2017-11-21 17:40 编辑
飘逸心晴 发表于 2017-11-21 17:19
图片太小,重新上传

已重新上传
6.png
回复

使用道具 举报

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
发表于 2017-11-21 17:37:13 | 显示全部楼层
弹头 发表于 2017-11-21 17:14
据说是Bootloader的hex没烧录什么的,请问到底是什么问题怎么解决呢?

这个问题我遇到了很多次,和我的情况很像.

你把凡是有中断的初始化都屏蔽掉试试.

原理:比如你开启了定时器三的溢出中断.但是你没有去用中断服务函数,那么跟别说清除
中断标志.这个就是死在中断里面了.  
自己选择的路,成家前走完。
回复

使用道具 举报

56

主题

520

帖子

0

精华

高级会员

Rank: 4

积分
964
金钱
964
注册时间
2014-11-18
在线时间
160 小时
发表于 2017-11-21 17:38:46 | 显示全部楼层

芯片有没有起来,把前面你怀疑的初始化全部屏蔽掉.然后看看能不能进while1
自己选择的路,成家前走完。
回复

使用道具 举报

5

主题

13

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2017-11-21
在线时间
17 小时
 楼主| 发表于 2017-11-21 17:45:11 | 显示全部楼层
aiyeba 发表于 2017-11-21 17:38
芯片有没有起来,把前面你怀疑的初始化全部屏蔽掉.然后看看能不能进while1

没有开启中断这些,然后初始化函数只能开启你设定的IO口是要高电平还是低电平,然后进入逻辑之后就不能运行了
回复

使用道具 举报

6

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
133
金钱
133
注册时间
2018-1-27
在线时间
4 小时
发表于 2018-4-7 19:34:22 | 显示全部楼层
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2020-2-4
在线时间
2 小时
发表于 2020-3-30 22:33:42 | 显示全部楼层
我想说,我照着原子哥的模板把流水灯的程序写了一遍,完全一样,编译仿真都可以通过。
但是,但是,但是,我把原子哥的模板烧录上去可以运行,自己写的就不行!
what the fuck!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 04:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表