Other Parts Discussed in Thread: C2000WARE
Hello TI Team,
I want help to enable printf on TMS320F28379D launchpad ,how can i use printf function using uart pin 42 and 43.
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.
Hello TI Team,
I want help to enable printf on TMS320F28379D launchpad ,how can i use printf function using uart pin 42 and 43.
Hi Atul,
I recommend taking a look at the following example within the C2000Ware SDK. It includes the required files to use printf and then utilizes it within the example.
C2000Ware_version\device_support\f2837xd\examples\cpu1\launchxl_f28379d
Best Regards,
Marlyn
Hi Marlyn,
I am using C2000Ware_3_04_00_00_Software\driverlib\f2837xd\examples\cpu1\sci\sci_ex1_loopback.c this example and add printf supported file . but here uart not working .on console shows garbage value.
following code and file for printf
status = add_device("scia", _SSA, SCI_open, SCI_close, SCI_read, SCI_write,
SCI_lseek, SCI_unlink, SCI_rename);
fid = fopen("scia","w");
freopen("scia:", "w", stdout);
setvbuf(stdout, NULL, _IONBF, 0);
.
//############################################################################# // //! //! \brief Contains the various functions related to the serial //! communications interface (SCI) object // // Group: C2000 // Target Device: TMS320F2802x // // (C) Copyright 2012, Texas Instruments, Inc. //############################################################################# // $TI Release: F2837xD Support Library v3.12.00.00 $ // $Release Date: Fri Feb 12 19:03:23 IST 2021 $ // $Copyright: // Copyright (C) 2013-2021 Texas Instruments Incorporated - http://www.ti.com/ // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions // are met: // // Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // // Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the // distribution. // // Neither the name of Texas Instruments Incorporated nor the names of // its contributors may be used to endorse or promote products derived // from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // $ //############################################################################# // // Included Files // #include <stdio.h> #include <file.h> #include <stdint.h> #include <stdbool.h> //#include "F28x_Project.h" #include "driverlib.h" #include "device.h" #include "board.h" #include "sci_io.h" // // Defines // // // Globals // uint16_t deviceOpen = 0; // // Functions // // // SCI_open - // int SCI_open(const char * path, unsigned flags, int llv_fd) { if(deviceOpen) { return (-1); } else { deviceOpen = 1; return (1); } } // // SCI_close - // int SCI_close(int dev_fd) { if((dev_fd != 1) || (!deviceOpen)) { return (-1); } else { deviceOpen = 0; return (0); } } // // SCI_read - // int SCI_read(int dev_fd, char * buf, unsigned count) { uint16_t readCount = 0; uint16_t * bufPtr = (uint16_t *) buf; if(count == 0) { return (0); } // while((readCount < count) && SciaRegs.SCIRXST.bit.RXRDY) while((readCount < count) && (SCI_getRxFIFOStatus(mySCI0_BASE) == SCI_FIFO_RX0)) { // *bufPtr = SciaRegs.SCIRXBUF.all; *bufPtr =SCI_readCharBlockingFIFO(mySCI0_BASE);//,*bufPtr); readCount++; bufPtr++; } return (readCount); } // // SCI_write - // int SCI_write(int dev_fd, const char * buf, unsigned count) { uint16_t writeCount = 0; uint16_t * bufPtr = (uint16_t *) buf; if(count == 0) { return (0); } // SCI_writeCharArray(mySCI0_BASE,buf,count); while(writeCount < count) { // while(!SciaRegs.SCICTL2.bit.TXRDY); while(!SCI_isSpaceAvailableNonFIFO(mySCI0_BASE)); // SciaRegs.SCITXBUF.all = *bufPtr; SCI_writeCharNonBlocking(mySCI0_BASE,*bufPtr); writeCount++; bufPtr++; } return (count); } // // SCI_lseek - // off_t SCI_lseek(int dev_fd, off_t offset, int origin) { return (0); } // // SCI_unlink - // int SCI_unlink(const char * path) { return (0); } // // SCI_rename - // int SCI_rename(const char * old_name, const char * new_name) { return (0); } // // End of File //
Hi Atul,
Have you added the pre-define "_LAUNCHXL_F28379D" to your project? This is required to setup the proper device clocking when using the launchpad.
Best Regards,
Marlyn