天嵌 ARM开发社区

 找回密码
 注册
查看: 2316|回复: 4

串口驱动 samsung.c的一点疑惑

[复制链接]
手指恋上烟 发表于 2012-9-21 15:32:26 | 显示全部楼层 |阅读模式
本帖最后由 手指恋上烟 于 2012-9-21 15:35 编辑
  1. static void s3c24xx_serial_set_termios(struct uart_port *port,
  2. struct ktermios *termios,
  3. struct ktermios *old)
  4. {
  5. struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);
  6. struct s3c24xx_uart_port *ourport = to_ourport(port);
  7. struct s3c24xx_uart_clksrc *clksrc = NULL;
  8. struct clk *clk = NULL;
  9. unsigned long flags;
  10. unsigned int baud, quot;
  11. unsigned int ulcon;
  12. unsigned int umcon;
  13. unsigned int udivslot = 0;

  14. /*
  15. * We don't support modem control lines.
  16. */
  17. termios->c_cflag &= ~(HUPCL | CMSPAR);
  18. termios->c_cflag |= CLOCAL;
复制代码
s3c24xx_serial_set_termios(。。。)这个函数应该对应应用程序中tcsetattr();
但是在内核函数中下边这段话
/*
  * We don't support modem control lines.这句话的意思是我们不支持调制解调器控制线,是不是就是不支持硬件流控?
  */
termios->c_cflag &= ~(HUPCL | CMSPAR);
termios->c_cflag |= CLOCAL;

应该是将调制解调器的线路状态给忽略了,不管我们在应用程序中是否设置cflag |= CRTSCTS,内核中都将其设置为忽略调制解调器的线路状态了。所以我们用ioctl函数控制RTS升高或拉低,在硬件上都没有实现相应电平的变化。
 楼主| 手指恋上烟 发表于 2012-9-21 15:36:00 | 显示全部楼层
顺便问一下linux源码查看工具你们用的是什么?linux下还是window下的?
亚瑟王 发表于 2012-9-21 17:14:22 | 显示全部楼层
经过实际测试,流控是可以使用的。我用5线的GPRS实际测试过。
查看代码我用gedit。
 楼主| 手指恋上烟 发表于 2012-9-22 09:58:17 | 显示全部楼层
亚瑟王 发表于 2012-9-21 17:14
经过实际测试,流控是可以使用的。我用5线的GPRS实际测试过。
查看代码我用gedit。

能不能把串口属性配置的那部分代码发一下,还有控制流控的代码
亚瑟王 发表于 2012-9-24 09:38:15 | 显示全部楼层
手指恋上烟 发表于 2012-9-22 09:58
能不能把串口属性配置的那部分代码发一下,还有控制流控的代码

用GPRS测试的。不加流控的两根线不能拨号。加了就可以拨号。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2024-6-11 15:16 , Processed in 1.031250 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表