问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 5542 人浏览分享

开启左侧

hi ! zynq uart problem,plaease help me!!

[复制链接]
5542 1
悬赏1积分未解决
do
{
RecvB=XUartPs_RecvByte(Config-> BaseAddress);
xil_printf("%X \n",RecvB);
for(i=0;i<100;i++);
}
while(XUartPs_IsReceiveData( Config->BaseAddress));


以上时简单的code ,我串口过来的数据有很多,不超过64字节,但是改循环执行一次就跳出了,只接收到了一个字节的数据?

评论 1

windy  新手上路  发表于 2017-12-28 16:25:10 | 显示全部楼层
UART的使用,关键是初始化,你要看初始化那里是怎么设置的;
在例程的源代码里面,它是接收一个byte然后立即发送出去了;若连续接收,你需要修改这里的代码;

在这段代码static void UartIntrHandler(void *CallBackRef)里面修改这一段代码。(结合实际应用)


        while((CsrRegister & XUARTPS_SR_RXEMPTY)== (u32)0)
        {//读取FIFO中所有数据

                        //InstancePtr->ReceiveBuffer.NextBytePtr[ReceivedCount] =//每次循环读取1byte
                                ;

                        XUartPs_WriteReg(InstancePtr->Config.BaseAddress,//每次循环发送读取到的数据
                                           XUARTPS_FIFO_OFFSET,
                                           XUartPs_ReadReg(InstancePtr->Config.
                                                                                     BaseAddress,
                                                                                     XUARTPS_FIFO_OFFSET));

                        ReceivedCount++;//计数
                        CsrRegister = XUartPs_ReadReg(InstancePtr->Config.BaseAddress,
                                                                        XUARTPS_SR_OFFSET);
                }

        }


举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

2

粉丝

2

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版