Problem with TeraTerm and scanf()

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Problem with TeraTerm and scanf()

1,364 次查看
kirantujare
Contributor IV

I was working on FRDM K64F using KDS

My code is working correctly on teraterm but I cannot see the scanf values I enter. It does the calculation correctly though. Also the teraterm output is spaced. I have attached how my output looks on tera term

标签 (1)
0 项奖励
2 回复数

882 次查看
TomE
Specialist II

K64F is Kinetis. This is the Coldfire forum.

Between your code and Teraterm you need code equivalent to a "terminal driver".

These can get horribly complicated, but at a basic level you expect "hello world\n" to print with a carriage return as well as the line feed. So if you changed your code to "hello world\r\n" it would look more normal. So a normal function of a Terminal Driver is to convert all "\n" on output to "\r\n".

It also echoes all input that you type back to the output so you can see what you're entering.

And for bonus points it should let you EDIT your response, at a minimum allowing you to backspace over what you typed, and only forwarding the edited result to your program when you hot "return".

The development board may come with software to do that, but you may have bypassed it to call the serial port directly. See if you can find one (and ask on the Kinetis forum). Or you could write one. Or you could write your code to explicitly (or via a function) emit "\r\n" and echo input characters.

Somehow the "scanf()" call is linked up to the serial driver somehow. just not through something standard or smart enough. There may be a project option somewhere.

Tom

0 项奖励

882 次查看
kirantujare
Contributor IV

Thank you! I got it figured out.
To use scanf(), I had to use debug_scanf and it worked

0 项奖励