本文主要是介绍新路程------hi3516a的uart rts cts功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
有位前辈写了以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就自动变了。
这篇关于新路程------hi3516a的uart rts cts功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!