智能车制作

标题: sprintf函数是单片机复位 [打印本页]

作者: wei4769229    时间: 2011-4-16 12:36
标题: sprintf函数是单片机复位
不知道大家有没有使用sprintf函数去把整形变量放到字符串里面,然后窗口发送。
当我的程序调用sprintf函数到一定次数单片机就复位了。
作者: veronika    时间: 2011-4-16 12:36
我也遇到过这样的问题,
原因是:sprintf运行花费了太多的时间,可能一句sprintf在单片机里需要运行一二十ms, 这个时候你的狗在起作用,运行了很长时间的sprintf没时间踢狗了,就会引起复位。

解决方法:在单片机中不要用sprintf,会浪费太多时间,想办法用其他的函数代替。

希望能对你有帮助。
作者: chengqing    时间: 2011-4-21 17:25
没有遇的过
作者: 萧狼1989    时间: 2011-4-21 17:53
char s[10];
void sendfloat(float fl)
{
   unsigned char fjx;
   sprintf(s,"%.3f",fl);
   fjx=0;
   while(s[fjx])
   {
    uartput(s[fjx]);
    fjx++;
   }
   for(fjx=0;fjx<10;fjx++)
   s[fjx]=0;
}
我sprintf 发float 一切正常啊




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2