打印
[demo程序]

NV32F100FL64E之UART环回模式测试代码

[复制链接]
487|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
詹求实|  楼主 | 2020-6-27 10:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "common.h"
#include "rtc.h"
#include "uart.h"
#include "uart_app.h"
#include "sysinit.h"

#define SEND_BUF_LEN    1
#define RECEIVE_BUF_LEN 1

uint8_t send_buf[SEND_BUF_LEN] = {'L'};
uint8_t receive_buf[RECEIVE_BUF_LEN] = {0};

/******************************************************************************/
int main (void)
{       
    UART_ConfigType sConfig;

    /*执行系统初始化*/
    sysinit();
    sConfig.u32SysClkHz = BUS_CLK_HZ;//选择系统时钟
    sConfig.u32Baudrate = 115200;//配置波特率为115200

    LED0_Init();//初始化 LED
    printf("\nRunning the UART_Loopback_demo project.\r\n");  
    printf("\nEnter any character to echo...\r\n");
    UART_WaitTxComplete(UART1);//等待串口1发送完成
   
    UART_Init(UART3,&sConfig);//初始化串口3
    UART_EnableLoopback(UART3);//开启串口3环回,设定UART3为循环模式
    UART_SetCallback(UART_HandleInt);       

    /* 禁用串口 1 收发中断 */
    UART_DisableInterrupt(TERM_PORT, UART_RxBuffFullInt);
    UART_DisableInterrupt(TERM_PORT, UART_TxBuffEmptyInt);
    /* 使能串口 1 接收溢出中断 */
    UART_EnableInterrupt(UART1, UART_RxOverrunInt);
    NVIC_EnableIRQ(UART1_IRQn);//打开串口1中断
     
    while (1)
    {
        send_buf[0] = UART_GetChar(TERM_PORT); //获取串口1上的字符,存放到发送缓冲区
        UART_SendWait(UART3, send_buf, 1);  //发送缓冲区字符到UART3口
        UART_ReceiveWait(UART3, receive_buf, 1);//把UART3的内容放入接收缓冲区中
        UART_PutChar(TERM_PORT, receive_buf[0]);//接收缓冲区的数据放入 UART1 口的数据寄存器   
    }
}



使用特权

评论回复

相关帖子

沙发
coshi| | 2020-7-6 17:27 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
板凳
zljiu| | 2020-7-6 17:28 | 只看该作者
环回模式是什么模式呀

使用特权

评论回复
地板
wiba| | 2020-7-6 17:28 | 只看该作者
最少需要多少延时

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

135

帖子

0

粉丝