We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I am using puthcar( ) function to send a series of bytes serially thru UART. My problem is that i cannot see the output through serial window of simulator . its printing just some junk values. when i am doing the same with printf(). I am getting response which could be observed from serial window.Can any one tell me why this is happening. Nitin
They do publish the source of "putchar.c"/
send_buf is an unsigned char array the code goes like this printf("[%x]",(int)send_buf[i]) ; This code works and it prints hex codes in serial window putchar(send_buf[i]) prints junk values only in serial window Whats the reason and how can it be corrected Thank you Nitin
The two calls you describe do completely different things - so the fact that the first gives readable output and the second doesn't is absolutely and totally irrelevant! Both calls are working correctly - it is your expectation that is faulty! The first one takes the numerical value of send_buf[i], formats it into printable text representing its hexadecimal value, then prints the text (using a number of putchar calls); eg, if the value is 0xA5, it will print "A5" The second simply takes send_buf[i] and sends it straight to the UART - so if send_buf[i] is not a printable ASCII code (eg, 0xA5) you will get junk.
"eg, if the value is 0xA5, it will print 'A5'" To be precise, since you specified the format string "[%x]", it will actually print "[a5]" "Whats the reason and how can it be corrected" You need to review your 'C' course notes/textbook/whatever and understand the difference between formatted output using printf, and direct output using putchar.
thank you Andy for clearing my misconception Nitin