MyFPGA Forum
标题:
串口发送遇到的问题 求高手解答
[打印本页]
作者:
木易X布
时间:
2011-3-30 19:37
标题:
串口发送遇到的问题 求高手解答
跪求高人指导
void Uart0_SendBuf(Uint8 const *buf, Uint32 n)
{
int i;
alt_u32 Status;
for (i = 0; i < n; i++)
{
IOWR_ALTERA_AVALON_UART_TXDATA(UART_BASE,buf[i]);
Status = IORD_ALTERA_AVALON_UART_STATUS(UART_BASE);//保存状态
while ((Status & ALTERA_AVALON_UART_STATUS_TRDY_MSK) == 0); /* 等待数据发送完毕 */
}
}
我这段程序为什么运行到while这个地方就停止了啊
trdy位不是自动清零吗?
trdy位不是在为1的时候才能向txdata寄存器写数据吗
作者:
木易X布
时间:
2011-3-30 19:38
求解答
坐等解答
坐等高手解答
作者:
yqzhang
时间:
2011-3-31 15:34
直接采用IOWR这种端口操作,感觉不是太好用。。建议使用 file 操作方式来弄比较好
void uart_loopback()
{
// char buffer[640*480*2] = {0};
// char *pBuf = buffer;
char *pBuf = NULL;
printf("uart loopback test...\n");
FILE*fp;
int i = 0;
fp =fopen("/dev/uart_0","r+");
if(fp)
{
pBuf = (alt_u8*)FRAME_SRC_LEFT;
for(i=0; i< 480 ; i++)
{
fread(pBuf, 1, 640, fp);
pBuf = pBuf + 640;
printf("li = %d \n", i);
}
printf("load left image over...\n");
pBuf = (alt_u8*)FRAME_SRC_RIGHT;
for(i=0; i< 480 ; i++)
{
fread(pBuf, 1, 640, fp);
pBuf = pBuf + 640;
printf("ri = %d \n", i);
}
printf("load right image over...\n");
fclose(fp);
fp =fopen("/dev/uart_0","r+");
pBuf = (alt_u8*)FRAME_SRC_LEFT;
for(i=0; i<480; i++)
{
fwrite(pBuf,1,640,fp);
pBuf = pBuf + 640;
printf("i = %d \n", i);
}
printf("send left image over...\n");
fclose(fp);
}
else
{
printf("open uart device fail\n");
}
}
复制代码
作者:
木易X布
时间:
2011-4-1 21:41
回复
3#
yqzhang
这种我也写过,但是在接收时出错了,不知道什么原因,我用的是串口摄像头,发送完命令不能接收数据
作者:
yqzhang
时间:
2011-4-2 09:40
两者的Baud,奇偶校验等参数都设置一致了么?
作者:
yqzhang
时间:
2011-4-2 09:45
PC 串口测试tool.rar
(33.56 KB, 下载次数: 13)
2011-4-2 09:45 上传
点击文件名下载附件
de2_115_Uart_SOPC.rar
(1016.75 KB, 下载次数: 18)
2011-4-2 09:44 上传
点击文件名下载附件
这两部分是经过测试的。。。
作者:
木易X布
时间:
2011-4-6 20:12
回复
6#
yqzhang
Baud,奇偶校验等参数都设置一致,可以发送,但是不能接受,只要当每次在我断电的时候会回答一些很乱的字符
欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/)
Powered by Discuz! X3