好久之前的做的笔记,这里贴出。

char String[100];//直接用数组代替指针即可解决

下面代代码下载至单片机中,发现会出现单片机死机问题

#include "stdio.h"

char *String;
short gx;short gy;short gz;
float Pitch,Yall,Roll; if(!(MPU_Get_EulerAngle(&Pitch,&Yall,&Pitch)))
{
sprintf(String,"陀螺仪:%.2f\t%.2f\t%.2f\n\t",Pitch,Yall,Pitch);
printf ("Pitch=%s",String);
}

然而下面这段代码却能正常执行:

 1 #incllude "stdio.h"
2
3 char *String;
4 short gx;short gy;short gz;
5 float Pitch,Yall,Roll;
6
7 if(!(MPU_Get_Gyroscope(&gx,&gy,&gz)))
8 {
9 sprintf(String,"陀螺仪:%d\t%d\t%d\n\t",(int)gx*100,(int)gy*100,(int)gz*100);
10 printf (String);
11 }
12 Loop_Delay_ms(500);

最后改char *String; 为指定字节大小的变量,发现第一处的不能执行的代码可以执行了

#include "stdio.h"

char String[100];
short gx;short gy;short gz;
float Pitch,Yall,Roll; if(!(MPU_Get_EulerAngle(&Pitch,&Yall,&Pitch)))
{
sprintf(String,"陀螺仪:%.2f\t%.2f\t%.2f\n\t",Pitch,Yall,Pitch);
printf ("Pitch=%s",String);
}

总结用sprintf转换数据量比较大的参数,建议用字符数组来存,不要用指针存

关于单片机编程里面调用sprintf死机的解决方法及原因分析的更多相关文章

  1. ubuntu20.04开机显示recovering journal死机的解决方法

    事发突然,在今天开机的时候无法进入登陆界面,一直卡在黑屏界面,屏幕上只显示几行代码,且任何按键都无法起作用 /dev/sdb2:recovering journal /dev/sdb2:Clearin ...

  2. 爱快在PVE下不定时反复重启死机的解决方法

    太长不看版本: 爱快3.6.X在PVE乃至于ESXI下都存在一定的兼容问题! 官网下载3.6.X安装后进入系统设置-升级备份-版本升级,使用爱快3.4.9bin升降级包,下载其中的bin升降级包,将爱 ...

  3. Android自动问题——黑屏、死机等解决方法

    今天用了下Android Studio,出现了一些问题,现在将启动过程中遇到的问题和解决方案列出来,方便大家参考. 安装过程不多说,网上一搜一大把. 那直接说问题吧: 1. 无法启动,报错:Faile ...

  4. Android启动问题——黑屏、死机等解决方法

    今天用了下Android Studio,出现了一些问题,现在将启动过程中遇到的问题和解决方案列出来,方便大家参考. 安装过程不多说,网上一搜一大把. 那直接说问题吧: 1. 无法启动,报错:Faile ...

  5. 64位进程调用32位dll的解决方法

    64位进程调用32位dll的解决方法   最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/ ...

  6. 编程中遇到的Python错误和解决方法汇总整理

    这篇文章主要介绍了自己编程中遇到的Python错误和解决方法汇总整理,本文收集整理了较多的案例,需要的朋友可以参考下   开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析, ...

  7. pd虚拟机死机怎么解决

    最近在mac上使用pd虚拟机装win使用,今天发现pd中的win7虚拟机死机了,无论怎么点都没用,通过点击操作-关闭也不行,重启电脑也不行,后来找到一种办法可以重启虚拟机. 1.先通过菜单中止虚拟机, ...

  8. 64位进程调用32位dll的解决方法 / 程序64位化带来的问题和思考

    最近做在Windows XP X64,VS2005环境下做32位程序编译为64位程序的工作,遇到了一些64位编程中可能遇到的问题:如内联汇编(解决方法改为C/C++代码),long类型的变化,最关键的 ...

  9. pin导致路由器死掉的解决方法

    首先检测网卡: ifconfig -a 然后模拟端口: airmon-ng start wlan0 接下来用: airodump-ng mon0 扫描ap找到你pin死的路由器mac 用mdk3 做身 ...

随机推荐

  1. cojs 1175. [顾研NOIP] 旅游电车

    1175. [顾研NOIP] 旅游电车 ★★☆   输入文件:buss.in   输出文件:buss.out   简单对比时间限制:1 s   内存限制:256 MB [问题描述] Henryy国正致 ...

  2. yum install -y dos2unix

    yum install -y dos2unix linux 怎么把^M去掉 - CSDN博客 http://blog.csdn.net/humanof/article/details/53044217 ...

  3. Selenium在Jenkins中的配置

    //  Goals and options -Dmode="" -DuseGrid="true" -Dhub=${Hub} -DbrowserType=${Br ...

  4. ASP.NET Web Projects

    https://msdn.microsoft.com/en-us/library/ywdtth2f.aspx The topics in this section describe how to cr ...

  5. JSP-Runoob:JSP 调试

    ylbtech-JSP-Runoob:JSP 调试 1.返回顶部 1. JSP 调试 要测试/调试一个JSP或servlet程序总是那么的难.JSP和Servlets程序趋向于牵涉到大量客户端/服务器 ...

  6. JSP-Runoob:JSP 自动刷新

    ylbtech-JSP-Runoob:JSP 自动刷新 1.返回顶部 1. JSP 自动刷新 想象一下,如果要直播比赛的比分,或股票市场的实时状态,或当前的外汇配给,该怎么实现呢?显然,要实现这种实时 ...

  7. 查看mysql是否安装成功和mysql的版本信息

    转自:https://blog.csdn.net/hellocsz/article/details/81241204 使用快捷键win+R打开 进入mysql的安装目录下的\bin(本人安装路劲为E: ...

  8. vs2010打开vs2012项目

    修改.sln文件的前两行 修改前: Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 修 ...

  9. .Net application,Session,Cache简单比较

    Application 对象用于存储和访问来自任何页面的变量,类似于 session 对象.不同之处在于,所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对 ...

  10. MySQL的DML和DQL 增删改查

    DML和DQL   增删改查 SELECT * FROM grade --新增 insert -- 向年级表中新增3条数据INSERT INTO grade(gradeID,gradeName) VA ...