我在调一个Windows CE 5 的串口驱动程序. 该程序第一个字节常常出错. 发送的0x41, 收到的却是0. 不懂.
我在调试过程中, 想在发送程序HW_XSC1_TxIntrEx中用一个字节变量读取发送的内容, 然后在接收程序HW_XSC1_RxIntr中用这个字节变量和串口接收的字节内容比较. 来看发送是否有错. 但我又不知道变量如何传递. 我试过static variable, 也试过extern variable. 都行不通? 有什么办法没有? 未必要搞个结构变量?
请高手指教. 先谢了.
1,怎么收的?直接将TX和RX短接?
2,你在底层驱动中的HW_XSC1_TxIntrEx 发送中保存,在接收HW_XSC1_RxIntr中比较发送中保存的数据?
直接用debug,设好断点,当接收到一个数据后就中断,看值,省的麻烦。
恩,还是直接用断点检查吧。看看当前值的变化问题。这种问题的原因比较多。
引用: 引用 2 楼 papapa123123 的回复:
1,怎么收的?直接将TX和RX短接?
2,你在底层驱动中的HW_XSC1_TxIntrEx 发送中保存,在接收HW_XSC1_RxIntr中比较发送中保存的数据?
yes to all of your questions.
我用的双重比较. 另一个应用测试程序也在比较发送和接收的数据. 在驱动程序HW_XSC1_RxIntr中也比较发送的数据.
把相关寄存器值打出来看看是不是对的,有一些默认值可能不是我们想要的,比如有的芯片,默认校验位置1,而可能需要的确是0;
很久了, 忘记结帖了. FIFO出了问题. 包大了一些. 导致丢包.