UART not working.
UART not working.
I am new to Renesas and infact this is my first time hands-on. I really liked the Peripheral pin code generator. But I need help with respect to UART. I tested in simulator it was not working in that and in actual hardware there is some random character being spitted out continously.
I tried to write a sample code to test UART but it was not working for me. Please let me resolve this problem.
Toolchain: GCC for Renesas 4.9.2.201801-GNURL78 (Latest)
IDE version : e2 studio 6.2.0
///CODE
static const uint8_t messageHelloWorld[13] = {“Hello World\r\n”};
uint8_t g_Uart0RxBuf; /* 1 byte RX Buffer */
MD_STATUS g_Uart0TxEnd; /* Signals end of Tx */
extern volatile uint16_t g_uart0_rx_count; /* uart0 receive data number */
extern volatile uint16_t g_uart0_rx_length; /* uart0 receive data length */
void init_uart()
{
int i = 0,flag=0;
for(i=0;i<10;i++)
{
g_Uart0TxEnd = R_UART0_Send(messageHelloWorld, 13);
while(g_Uart0TxEnd == 0);
}
P1 = 0xFF;
R_UART0_Receive(&g_Uart0RxBuf,1);
while (1U)
{
if( g_uart0_rx_count >= g_uart0_rx_length)
{
if(flag ==0)
flag=0xff;
else
flag = 00;
P1=flag;
/* Send the recieved char on console */
g_Uart0TxEnd = R_UART0_Send(&g_Uart0RxBuf, g_uart0_rx_length);
while(g_Uart0TxEnd == 0); /* Wait for final transmit */
}
/* Initialize the RX Buffer for Next Reception */
R_UART0_Receive(&g_Uart0RxBuf,1);
}
}
/***********************************************************************************************************************
* Function Name: main
* Description : This function implements main function.
* Arguments : None
* Return Value : None
***********************************************************************************************************************/
void main(void)
{
R_MAIN_UserInit();
/* Start user code. Do not edit comment generated here */
//P1 = 0x10;
int i =1;
double j=0,x=0;
while (1U)
{
P1 = 0x00;
uart_fn();
}
/* End user code. Do not edit comment generated here */
}
/***********************************************************************************************************************
* Function Name: R_MAIN_UserInit
* Description : This function adds user code before implementing main function.
* Arguments : None
* Return Value : None
***********************************************************************************************************************/
void R_MAIN_UserInit(void)
{
/* Start user code. Do not edit comment generated here */
EI();
R_UART0_Start();
/* End user code. Do not edit comment generated here */
}
/* Start user code for adding. Do not edit comment generated here */
/* End user code. Do not edit comment generated here */
Hello,
The code you sent to us does not compile unfortunately, so we took the liberty and created a sample project ourselves. Once we configured the UART driver in code generator, everything was working fine with the simulator.
At this point, we are unsure whether you had configured UART correctly, because there is no way to tell for sure. To aid you with the UART configuration, we have found an application note and a sample project:
https://www.renesas.com/en-eu/doc/products/mpumcu/apn/rl78/002/r01an3146ej0100_rl78.pdf
https://www.renesas.com/en-eu/software/D3018027.html
From the sample code you supplied we did notice a problem, namely the UART buffer you use. The UART “send” function takes as parameter 16bit near pointer, which means that you may only use buffers located in RAM. Therefore, you will need to please modify “static const uint8_t messageHelloWorld[13]..” to “static uint8_t messageHelloWorld[13]..”
Please modify your buffer declaration therefore, then check your UART configuration with the help of the application notes provided above and let us know the outcome.
– Best regards,
The GNU Tools Team
Hello,
Thank you for your inquiry!
We have noticed that you had also commented on https://gcc-renesas.com/question/sprintf-format-specifiers-dont-working/ saying that you are encountering the same problem.
Please let us know if this is a separate query, or if we should follow-up on this thread only.
Additionally, in the other thread above we were requesting, through a comment, that you please provide us with the following details if possible:
1. the e2 Studio version
2. the device you are using
3. the toolchain version
Thank you, we look forward to hearing back from you soon.
—
Best regards,
The GNU Tools Team
It is actually same issue.But what i realized is sprintf is working but the problem was actually with UART. That’s why i thought i can create a separate issue. I have already mentioned the details that you were askig for.
Still i will write them here.
1. the e2 Studio version – 6.2.0
2. the device you are using – R5F10268A
3. the toolchain version – GCC for Renesas 4.9.2.201801-GNURL78 (Latest)