串口编程入门:
写的非常好。
http://www.ibm.com/developerworks/cn/linux/l-serials/index.html
对于串口,大家不能发送接收,数据,或者只有一方能接收或者发送,都是串口设置的问题。
大家可以把自己串口通信的经验在后面进行回复,以便他人查看。我想抽个时间把串口通信的问题汇总。
以下是我在优快云找到的几个比较经典串口通信帖子(里面的问题很可能不是大家要的):
但是,通过他人的回帖,也可以找到自己的问题所在。
http://topic.youkuaiyun.com/u/20100803/10/c79dbf91-caf5-4edd-9fce-562be7f64b66.html
http://topic.youkuaiyun.com/u/20100802/17/0951fcd3-3b83-4a17-b17e-cd17d1dcb2c0.html
http://topic.youkuaiyun.com/t/20030529/11/1849267.html
http://topic.youkuaiyun.com/t/20031223/10/2592945.html
http://topic.youkuaiyun.com/u/20090630/17/1A96B781-7893-4317-85BA-01199619FA30.html
http://topic.youkuaiyun.com/t/20030612/11/1906697.html
http://topic.youkuaiyun.com/u/20070603/16/3D6AA4C7-586E-451E-A43E-21B1E6D37258.html
http://topic.youkuaiyun.com/u/20100618/09/C6F27D20-8E50-43BC-A982-D5F4830BC06A.html
支持一下。顺便说一下:
串口相关的程序还是比较好调试的,记住两点:
1、数据流程如下:从应用程序=>驱动程序=>芯片=>串口线=>芯片=>驱动程序=>应用程序
2、数据最后都被变成方波在串口线上传播。
-------------------------------
所以调试程序时,一般过程是:
1、先看串口线或者DB针脚上有没有数据,这个可以解决掉大多数的硬件问题(包括连接问题和线的问题)而且故障定位速度很快。
2、串口线上有数据的情况下,一般硬件没问题。这时有两种情况:
2.1、如果串口驱动没有改写过的话,那么应用程序一般都能收到一些数据,只不过可能是乱码。如果是乱码的话,则基本是应用程序的串口配置部分有问题。
2.2、如果串口驱动改写过的话,如果应用程序不能收到数据则可能是驱动程序中串口初始化没有做好。如果应用程序能收到数据但是乱码的话,则可能是驱动程序中串口初始化有问题也可能是应用程序的串口配置部分有问题。
3、至于有些串口设备没有反应的问题,也是基于这个思路来分析。在排除了硬件问题后,最大的可能就是服务程序没有运行或者反馈。