新路程------hi3516a的uart rts cts功能

来源:互联网 发布:如何恢复电脑网络设置 编辑:程序博客网 时间:2024/05/22 14:22

     有位前辈写了以gpio方式控制rts,在驱动内核中修改http://blog.csdn.net/edw200/article/details/52251385?locationNum=4

  就是在发送前拉高,发送后拉低,但是这样要计算时间,比较麻烦,而且不同的波特率容易时间计算不准确,所以还是应该由上层把这个事做了,也就是用ioctl的形式来做,这样比较安全放心。

       rts的控制在海思的文档里写得很隐晦难懂,我也是测量之后才知道,0x20090030的bit11会影响rts的电平,当bit11为0的时候,电平是3.2v,当bit11为1的时候,电平变成了0v,ioctl在/drivers/tty/Tty_io.c里case TIOCMSET:

       还有一个地方要注意,就是如果你ioctl以后close fd了,那么这个bit位又会恢复原样,也就是要看这个bit是否置位,必须while 1 hold住程序才行,不然fd一关,这个bit就自动变了。