WinCE 串口驱动 第一个字节出错的问题.

JJJwan   2009-5-27 10:34 楼主
我在调一个Windows CE 5 的串口驱动程序. 该程序第一个字节常常出错. 发送的0x41, 收到的却是0. 不懂.

我在调试过程中, 想在发送程序HW_XSC1_TxIntrEx中用一个字节变量读取发送的内容, 然后在接收程序HW_XSC1_RxIntr中用这个字节变量和串口接收的字节内容比较. 来看发送是否有错. 但我又不知道变量如何传递. 我试过static variable, 也试过extern variable. 都行不通? 有什么办法没有? 未必要搞个结构变量?

请高手指教. 先谢了.

回复评论 (9)

先清空串口缓存的无效数据
点赞  2009-5-27 11:24
1,怎么收的?直接将TX和RX短接?
2,你在底层驱动中的HW_XSC1_TxIntrEx 发送中保存,在接收HW_XSC1_RxIntr中比较发送中保存的数据?
点赞  2009-5-27 11:59
直接用debug,设好断点,当接收到一个数据后就中断,看值,省的麻烦。
点赞  2009-5-27 12:26
恩,还是直接用断点检查吧。看看当前值的变化问题。这种问题的原因比较多。
点赞  2009-5-27 14:36
引用: 引用 2 楼 papapa123123 的回复:
1,怎么收的?直接将TX和RX短接?
2,你在底层驱动中的HW_XSC1_TxIntrEx 发送中保存,在接收HW_XSC1_RxIntr中比较发送中保存的数据?


yes to all of your questions.

我用的双重比较. 另一个应用测试程序也在比较发送和接收的数据. 在驱动程序HW_XSC1_RxIntr中也比较发送的数据.
点赞  2009-5-28 03:41
引用: 引用 1 楼 morris88 的回复:
先清空串口缓存的无效数据


It is cleared in init.
点赞  2009-5-28 03:42
break point 早就有了.
点赞  2009-5-28 03:44
把相关寄存器值打出来看看是不是对的,有一些默认值可能不是我们想要的,比如有的芯片,默认校验位置1,而可能需要的确是0;
点赞  2009-5-30 00:44
很久了, 忘记结帖了. FIFO出了问题. 包大了一些. 导致丢包.
点赞  2009-10-21 03:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复