今天修改了软件中的串口读写部分,放在安卓屏上测试串口功能,但是发现了一个奇怪的问题:
安卓屏上的串口是公头,
通过母母转换口接在两个公头上时,可以正常通信;
直接接在一个母头上时反而不能通信;
如下图:
按理说,公头接上母头不就可以进行串口通信了吗?反复进行测试,也进行了多种对比,都是这样,也就是只能和那个带着母母转接头的公头通信,而无法直接和设备上的母头通信。百思不得其解。
最终,找了一位做电子电路的同事求助,一下子就解决了问题,豁然开朗。
原来是串口线序的问题:
先看原来的线序:
原线序,能提供公头对公头(通过母母转换)的通信,那么公头对母头就不行。
所以,如果要实现公头对母头的通信,那么线序就要反过来,同一种线序,二者只能满足其一:
TXD和RXD接线换了位置之后,就能直接和母头通信了。问题解决。
“公头接母头就应该能正常通信啊”, 这是典型的外行问出来的问题。
一个串口的问题,把应用软件程序员折腾得够呛,但在电子工程师眼里却是小菜一碟。
总结:电子、硬件的问题,有其专业性,不是应用软件程序员一下子能理解的,需要专门学习和长期积累才能熟悉。