关于STM32 使用sprintf 死机问题!

在使用 sprintf 函数时遇到的造成死机的两种原因:

1、 指针未声明内存

char *p;
sprintf(p,"%d,%d,%f",1,1,2.1);

解决方法:对指针申请内存,或定义成数组类型。

2、打印float/double 类型数据。

解决方法:修改为int类型打印。


有网友说栈空间不足造成的死机,本人测试后以上两种死机原因均为改善。

启动文件中 Heap_Size 为 0x00000200修改为0x00000C00

Heap_Size       EQU     0x00000200
Stack_Size      EQU     0x00000400
Heap_Size       EQU     0x00000C00

对于sprintf 造成的真正死机原因有待进一步深究,也望各位网友给出解决方法!


猜你喜欢

转载自blog.csdn.net/u012166958/article/details/80496075