uart通信

早上好,社区的朋友们!

请问一下我在使用

R_UART0_Send_String((__far int8_t*)"\n\rChoose actions:(1)Update Boot area + App area (2)Update App area only\n\r");

发送数据时,单步调试的时候一切正常,

SDR00L = data;      /* load character to transmit register */     执行完后,STIF0  置1

但是在run程序的时候,只会发送第一个字符,STIF0一直为0  卡在while (STIF0 == 0)。请问为什么会出现这种情况呢?

Parents Reply
  • 硬件 

    R5F00LE, txd0  <---> rxd0

    变量定义:

    /* Start user code for pragma. Do not edit comment generated here */
    uint8_t tx_dat[8]={0x0f, 0xf0, 0x00, 0xff, 0x33, 0x55, 0xaa, 0xcc};
    uint8_t rx_dat[8];
    uint8_t send_OK=0;
    uint8_t re_OK=0;
    #define TX_LEN 8
    #define RX_LEN 8
    /* End user code. Do not edit comment generated here */

    主程序

    void main(void)
    {
    uint8_t i;
    R_MAIN_UserInit();
    /* Start user code. Do not edit comment generated here */
    R_UART0_Start();
    R_UART0_Send(tx_dat, TX_LEN);
    R_UART0_Receive(rx_dat,RX_LEN);
    while (1U)
    {
    if(re_OK == 1){
    re_OK =0;
    for(i=0;i<TX_LEN;i++){
    tx_dat[i] +=0x10;
    }
    R_UART0_Send(tx_dat, TX_LEN);
    R_UART0_Receive(rx_dat,RX_LEN);
    }
    }
    /* End user code. Do not edit comment generated here */
    }

    中断

    static void r_uart0_callback_receiveend(void)
    {
    /* Start user code. Do not edit comment generated here */
    NOP();
    re_OK = 1;
    /* End user code. Do not edit comment generated here */
    }

    测试结果

Children