Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.
I've done a few projects with the PIC32. I assume that you will be using Microchips C32 compiler. If you roll your own printf function there are two things that you should know...
1. It does not use putch( char c ) but instead it uses _mon_putc( char c ). I spent hours trying to figure out why printf was locking up my MCU and never calling putch(). This is documented, but not very well in my opinion. I have no idea why they strayed from the very typical putch() function.
2. Once you get printf working it will drive you f'ing crazy because printf buffers all data until you attempt to transmit a line feed. So, all of your debug data that you try to send won't come out for quite a while unless it is carriage return/line feed terminated. This buffering happens before _mon_putc is called and it quite stupid in my opinion. Again, I feel that this isn't very well documented. Call setbuf( stdout, NULL ); to cause printf to immediately begin calling _mon_putc()
I am no expert, but I've used a handful of different MCU's and compilers and found the above two items to be out of the ordinary and very frustrating. I see virtually no benefit to the changes they made, especially the first item I listed. Despite these changes though, I really do like the PIC32. I've done two projects with the PIC32 and I'm about to start my third. All three use color graphic LCD's, and I think they're quite nice.