在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4363|回复: 4

[求助] Microblaze上串口传输问题

[复制链接]
发表于 2011-10-31 22:52:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
高手求助,请问在microblaze上实现通过串口输入一串数据后,能在串口调试助手上立即显示输出的数据,用什么函数实现?
int main(void)
{
        init_platform();

        u8 rs_buffer[8];

        unsigned int numRcv=0, numSnd=0;

        XUartNs550_Initialize(&uartinit, 0);

    /* Initialize RS232_Uart_1 - Set baudrate and number of stop bits */
    XUartNs550_SetBaud(XPAR_RS232_UART_1_BASEADDR, XPAR_XUARTNS550_CLOCK_HZ, 9600);
    XUartNs550_SetLineControlReg(XPAR_RS232_UART_1_BASEADDR, XUN_LCR_8_DATA_BITS);


    xil_printf("***************************************\r\n");
    xil_printf("***********  Please input data:  ******\r\n");
    while(!numRcv)
    {
            numRcv = XUartNs550_Recv(&uartinit, rs_buffer,5);
    }
           while(!numSnd)
           {         numSnd = XUartNs550_Send(&uartinit, rs_buffer,5);

           }


    cleanup_platform();
    return 0;

}
用上述程序只能完成一次操作,而且还会出现错误数据。
发表于 2011-11-1 09:29:05 | 显示全部楼层
示例程序里应该有hello_uart之类的测试程序,先确定那个是能正常工作的。这样才知道你波特率和通路有没有问题。
另外,你的while循环肯定都是只执行1次就退出了
 楼主| 发表于 2011-11-1 15:39:24 | 显示全部楼层
回复 2# falloutmx
波特率等设置都对,因为printf输出的都正确。恩,while却是只能执行一次,我想通过串口将数据存储到flash中,想法是先将数据暂存到一个寄存器中,再将寄存器的数据通过指令写入flash。你知道怎么实现吗?
发表于 2011-11-1 16:58:24 | 显示全部楼层
你用个数组存起来,然后通过flash的API写入就行了
发表于 2013-9-8 16:46:44 | 显示全部楼层
学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-24 23:43 , Processed in 0.021000 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表