OpenEdv-开源电子网

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

sprintf使用时候会导致程序挂起

[复制链接]

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
发表于 2014-11-27 11:22:07 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]int m; char *ptr; t=atof(m)*10000; sprintf(ptr,"%08X",t);  [/mw_shl_code] [mw_shl_code=c,true] [/mw_shl_code] [mw_shl_code=c,true] [/mw_shl_code] [mw_shl_code=c,true]我用上面的函数把一个数字转成对应的16进制的字符串。[/mw_shl_code] [mw_shl_code=c,true] [/mw_shl_code] [mw_shl_code=c,true]程序经常会在sprintf这里挂起,但不是每次都挂起,10次会有3次挂起,就会进入下面这个函数。 [mw_shl_code=c,true] [/mw_shl_code] [/mw_shl_code] [mw_shl_code=c,true]两个人都用这个函数,但是他那里就没有挂起过,DEBUG也找不出来原因。 void HardFaultException(void) { /* Go to infinite loop when Hard Fault exception occurs */ while (1) { } }[/mw_shl_code]

最佳答案

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

str是指针,内存都不分配,不挂才怪。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-11-27 11:22:08 | 显示全部楼层
str是指针,内存都不分配,不挂才怪。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2014-11-27 11:57:41 | 显示全部楼层
看一下是什么原因导致hardfault的,使用keil的硬件仿真,等仿真进入到hadfault以后,点击暂停,然后按照点击"eripherals->core peripherals->Fault Reports"打开keil的错误报告,查看是什么原因导致进入hardfault的。你也可以把你的那个错误报告截图发上来。
开往春天的手扶拖拉机
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
 楼主| 发表于 2014-11-27 14:40:44 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
是别人写的程序,我直接移植的。。我不怎么会用指针,所以也找不到问题在哪里。谢谢原子大哥。
回复

使用道具 举报

28

主题

218

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2013-11-19
在线时间
92 小时
发表于 2014-12-12 11:50:43 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
求解?我也经常遇到莫名其妙 程序会跑死在void HardFaultException(void)
  里面
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-12 22:40:15 | 显示全部楼层
回复【5楼】1375917982gxut:
---------------------------------
学会怎么使用指针先。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

28

主题

218

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2013-11-19
在线时间
92 小时
发表于 2014-12-13 15:33:33 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
我程序里 都没有指针
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-12-14 11:33:21 | 显示全部楼层
回复【7楼】1375917982gxut:
---------------------------------
那就检查其他地方。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

19

主题

122

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
218
金钱
218
注册时间
2014-8-20
在线时间
0 小时
 楼主| 发表于 2014-12-15 09:06:40 | 显示全部楼层
回复【7楼】1375917982gxut:
---------------------------------
也有可能是程序中访问了不存在的内存导致的。
你没发你的程序上来,从哪里开始出现挂起的。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-27 21:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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