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.

scanf problem for F28027

Other Parts Discussed in Thread: LAUNCHXL-F28027

Hi,

I have project on LAUNCHXL-F28027. I want to control F28027 by PC through the Serial Port- SCI. Therefore SCI is configured in my program. Although F28027 sent data to terminal in PC from "printf" command, "scanf" didnt work.
program waiting at scanf line. I have controlled serial data on GPIO28- SCI receive port using ossiloscope. Also I have checked GPIO28 pin is in SCI RX state (GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1).
I attached related lines in my program. What is the problem with scanf?


Thank you for your suggestion.

Best

Dr. Goksel Gunlu

************************************************************


void main(void)
{
unsigned i;
start:

DINT; // Global Disable all Interrupts

DeviceInit(); // Device Life support & GPIO mux settings

InitSysCtrl();


myClk = CLK_init((void *)CLK_BASE_ADDR, sizeof(CLK_Obj));
mySci = SCI_init((void *)SCIA_BASE_ADDR, sizeof(SCI_Obj));
// Initialize SCIA
scia_init();

//Redirect STDOUT to SCI
status = add_device("scia", _SSA, SCI_open, \
SCI_close, SCI_read, \
SCI_write, \
SCI_lseek, \
SCI_unlink,\
SCI_rename);

#if 1// UART or JTAG ------------------------
fid = fopen("scia","w");
freopen("scia:", "w", stdout);
//freopen("scia:", "r", stdin);
setvbuf(stdout, NULL, _IONBF, 0);
#else
fid = fopen("scia","r");
freopen("scia:", "r", stdin);
setvbuf(stdin, NULL, _IONBF, 0);
#endif

MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash(); // Call the flash wrapper init function

Init();


printf("start\n");

scanf( "%c",&mod );
printf("%d\n",mod);

}


// SCIA 8-bit word, baud rate 0x000F, default, 1 STOP bit, no parity
void scia_init()
{
CLK_enableSciaClock(myClk);

// 1 stop bit, No loopback
// No parity,8 char bits,
// async mode, idle-line protocol
SCI_disableParity(mySci);
SCI_setNumStopBits(mySci, SCI_NumStopBits_One);
SCI_setCharLength(mySci, SCI_CharLength_8_Bits);

SCI_enableTx(mySci);
SCI_enableRx(mySci);
SCI_enableTxInt(mySci);
SCI_enableRxInt(mySci);

// SCI BRR = LSPCLK/(SCI BAUDx8) - 1
// Configured for 115.2kbps
#if (CPU_FRQ_60MHZ)
//SCI_setBaudRate(mySci, SCI_BaudRate_115_2_kBaud);
SCI_setBaudRate(mySci, 1);
#elif (CPU_FRQ_50MHZ)
SCI_setBaudRate(mySci, (SCI_BaudRate_e)13);
#elif (CPU_FRQ_40MHZ)
SCI_setBaudRate(mySci, (SCI_BaudRate_e)10);
#endif

SCI_enableFifoEnh(mySci);
SCI_resetTxFifo(mySci);
SCI_clearTxFifoInt(mySci);
SCI_resetChannels(mySci);
SCI_setTxFifoIntLevel(mySci, SCI_FifoLevel_Empty);

SCI_resetRxFifo(mySci);
SCI_clearRxFifoInt(mySci);

SCI_setRxFifoIntLevel(mySci, SCI_FifoLevel_4_Words);

SCI_setPriority(mySci, SCI_Priority_FreeRun);

SCI_enable(mySci);

return;
}

***********************************************************