免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2710 | 回复: 1
打印 上一主题 下一主题

[驱动] 求助:串口只能接收数据,不能发送数据 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-06 15:24 |只看该作者 |倒序浏览
用的芯片是AT91SAM9x35,有6路串口,usart0-usart3,uart0-uart1,在/arch/arm/mach-at91/board-sam9x5ek.c下面默认开启了usart0,对应ttyS1,ttyS0为DBGU口。
static void __init ek_map_io(void)
{
/* Initialize processor and DBGU */
cm_map_io();

/* USART0 on ttyS1. (Rx, Tx) */
at91_register_uart(AT91SAM9X5_ID_USART0, 1, 0);
}
我想再开启一路串口使用,就在上面添加了
static void __init ek_map_io(void)
{
/* Initialize processor and DBGU */
cm_map_io();

/* USART0 on ttyS1. (Rx, Tx) */
at91_register_uart(AT91SAM9X5_ID_USART0, 1, 0);
at91_register_uart(AT91SAM9X5_ID_USART2, 2, 0);
}
这样应该会出现ttyS0,ttyS1,ttyS2的,重新烧写,启动,打印信息中出现了
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xf801c000 (irq = 5) is a ATMEL_SERIAL
atmel_usart.2: ttyS2 at MMIO 0xf8024000 (irq = 7) is a ATMEL_SERIAL
#cat /proc/tty/driver/atmel_serial
0: uart:ATMEL_SERIAL mmio:0xFEFFF200 irq:1 tx:1026 rx:39 RTS|CTS|DTR|DSR|CD|RI
1: uart:ATMEL_SERIAL mmio:0xF801C000 irq:5 tx:0 rx:0 DSR|CD|RI
2: uart:ATMEL_SERIAL mmio:0xF8024000 irq:7 tx:0 rx:0 CTS|DSR|CD|RI
貌似出现了设备节点,下面进行读写操作,用串口调试助手查看收发数据。
发送部分程序:
fd = open("/dev/ttyS2",O_RDWR | O_NOCTTY );
if(fd == -1)
        {
             perror("Can't Open Serial Port\n");
             return -1;
        }
printf("Open Serial OK!\n");
tcgetattr(fd,&opt);//获取当前配置
cfmakeraw(&opt);
cfsetispeed(&opt,B9600);     /*设置输入输出为9600Bps*/
cfsetospeed(&opt,B9600);
tcsetattr(fd, TCSANOW, &opt);//设置新配置
retv=write(fd,sbuf,lenth);
if(retv==-1)
{
perror("retv write 1\n");
}
printf("The number of send data is:%d\n",retv);
close(fd)<0;
接收程序,和上面差不多。
操作新生成的ttyS2,就是发送不出数据,但可以接收数据。用同样的测试程序操作ttyS1,既能发数据也能收数据,这是怎么回事?
网上看到说要这样写:at91_register_uart(AT91SAM9X5_ID_USART2, 2, ATMEL_UART_RTS|ATMEL_UART_CTS);
但还是一样问题,求大神指点下!

论坛徽章:
0
2 [报告]
发表于 2013-05-07 11:39 |只看该作者
将DMA关闭后可以正常了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP