This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
使用的处理器: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);
之前 是直接使用 printf 输出到 console的 stack:0x400 heap:0x400 都没问题
现在设备离电脑远一些 使用串口输出到PC的 printf重定向后 不行 ,使用 sprintf也不行
在使用C I/O函数的时候,要注意:
保证heap的空间够大
保证Stack的空间足够,建议0x800试试
头文件一定要包含。
另外,把“\n”去掉试试。
哎 可以了 谢谢了 但是 我比较想不通:
1,在simulator 里面 stack 和 heap 各0x400大小可以格式化到缓存区中,为什么在处理器上跑就不行了?
2,当不对printf重定向时 输出到CCSv4的 Console中是可以的,使用stack 和heap大小为0x400(官方值)
但一重定向到SCI就不行了,sprintf也不行了,还都是有浮点数引起的,想不通?