TI中文支持网
TI专业的中文技术问题搜集分享网站

有关sprintf的问题

使用的处理器:F28335

使用的开发环境:CCSv4.2.3

优化等级:0

问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?

谢谢。(各种库头文件已添加)

float32 freq,mag,phase;

char sci_buf[100];

freq = 2200;

mag = 768000.22;

phase = 23.23;

sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);

i = strlen(sci_buf);

SCI_Puts(sci_buf,i);

Young Hu:

建议您把stack设大点再试试。不推荐您使用sprintf,因为要占用很大的系统资源和代码空间。

使用的处理器:F28335

使用的开发环境:CCSv4.2.3

优化等级:0

问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?

谢谢。(各种库头文件已添加)

float32 freq,mag,phase;

char sci_buf[100];

freq = 2200;

mag = 768000.22;

phase = 23.23;

sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);

i = strlen(sci_buf);

SCI_Puts(sci_buf,i);

Young Hu:

参考

www.deyisupport.com/…/12193.aspx

使用的处理器:F28335

使用的开发环境:CCSv4.2.3

优化等级:0

问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?

谢谢。(各种库头文件已添加)

float32 freq,mag,phase;

char sci_buf[100];

freq = 2200;

mag = 768000.22;

phase = 23.23;

sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);

i = strlen(sci_buf);

SCI_Puts(sci_buf,i);

shen lee:

回复 Young Hu:

忘了说了 stack :0x400 heap:0x400 还需要再大些么 谢谢

使用的处理器:F28335

使用的开发环境:CCSv4.2.3

优化等级:0

问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?

谢谢。(各种库头文件已添加)

float32 freq,mag,phase;

char sci_buf[100];

freq = 2200;

mag = 768000.22;

phase = 23.23;

sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);

i = strlen(sci_buf);

SCI_Puts(sci_buf,i);

shen lee:

之前 是直接使用 printf 输出到 console的 stack:0x400 heap:0x400 都没问题

现在设备离电脑远一些 使用串口输出到PC的 printf重定向后 不行 ,使用 sprintf也不行

使用的处理器:F28335

使用的开发环境:CCSv4.2.3

优化等级:0

问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?

谢谢。(各种库头文件已添加)

float32 freq,mag,phase;

char sci_buf[100];

freq = 2200;

mag = 768000.22;

phase = 23.23;

sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);

i = strlen(sci_buf);

SCI_Puts(sci_buf,i);

shen lee:

回复 Young Hu:

好的 我试试  谢谢

使用的处理器:F28335

使用的开发环境:CCSv4.2.3

优化等级:0

问题描述:我在CCSv4中使用simulator时如下语句可以将响应变量格式化到sci_buf中,但当在处理器中运行时就不可以,根据几次实验,主要是浮点变量引起的。不知道这是问什么,怎么解决?

谢谢。(各种库头文件已添加)

float32 freq,mag,phase;

char sci_buf[100];

freq = 2200;

mag = 768000.22;

phase = 23.23;

sprintf(sci_buf,"%%%% %-4d %c %-8.2f \n",22,'k',mag);

i = strlen(sci_buf);

SCI_Puts(sci_buf,i);

shen lee:

回复 shen lee:

哎  可以了  谢谢了  但是 我比较想不通:

1,在simulator 里面 stack 和 heap 各0x400大小可以格式化到缓存区中,为什么在处理器上跑就不行了?

2,当不对printf重定向时 输出到CCSv4的 Console中是可以的,使用stack 和heap大小为0x400(官方值)

但一重定向到SCI就不行了,sprintf也不行了,还都是有浮点数引起的,想不通?

赞(0)
未经允许不得转载:TI中文支持网 » 有关sprintf的问题
分享到: 更多 (0)