Hola marito, en la parte de codigo que te envie no uso rs232, la linea de printf se usa para cuando quieres imprimir una variable, por ejemplo
printf(usb_cdc_putc,"envio el dato %i",nombre_variable);
en el caso anterior se sustituye el %i por lo que tenga la variable "nombre_variable" que debe ser del tipo entero.
esto no se puede hacer usando solo usb_cdc_putc.
solo te explico para que se usa el printf, aunque en el ejemplo que te puse creo que no imprimo el dato asi que lo puedes substituir por un usb_cdc_putc.
mi version de ccs es la 4.124, no tuve problemas con el envio desde el micro a la pc, pero si tuve problemas alrevez, por lo que cambie las librerias del usb por unas que tenia de una version anterior y funciona a la perfeccion