关于InstallComCallback函数和WriteFile函数
- UID
- 118300
- 性别
- 男
|
关于InstallComCallback函数和WriteFile函数
各位好:
我在实现串口通讯的时候想利用InstallComCallback()函数来实现收到回车字符就自动读串口的功能,我现在有两个串口分别为 COM1 和 COM2 ,使用的InstallComCallback()函数分别为
InstallComCallback (comport_a, LWRS_RXFLAG, 0, (int)gEventChar[0] ,Event_Char_Detect_Func_a, 0); InstallComCallback (comport_b, LWRS_RXFLAG, 0, (int)gEventChar[0] , Event_Char_Detect_Func_b, 0);
结果程序运行的时候对COM1口可以实现收到回车时自动显示接受到的字符串,但是COM2口却是一点反应都没有,好像根本就没有进入到Event_Char_Detect_Func_b这个应该执行的函数里面去,我百思不得其解,如果我写一段手动接收的代码是可以从COM2口接收数据的,但是为什么对COM2口用了InstallComCallback 函数之后却没有反应呢?是不是在程序中只能用一次InstallComCallback ?还是其他什么原因呢?
还有就是WriteFile这个函数,我想把从串口收进来的数都写到指定的.txt文本文件里面去,但是写进去以后,有时候打开.txt会发现些进去的是乱码,而有时候写进去的又是正常的?这是什么原因呢?是不是在往文件里面写的时候,收进来的数据要做一些转变啊?如果要转的话,该怎么转呢?
谢谢大家 |
|
|
|
|
|
- UID
- 132873
- 性别
- 男
|
对于第一个问题:
应该不会有两个串口冲突的问题,可以考虑你的串口是否工作正常;你可以这样,单独编写两个程序,第一个使用com1第二个使用com2,单独运行看是否都能够正常工作?如果能就可以证明串口工作正常,可以检查程序的问题,使用两个线程分开工作。
对于第二个问题:
如果你从串口监视看到的字符不是乱码的话,那么写进文件后也不会出现乱码,应该是写进文件时是否有丢位或错位的问题。 |
希望能够在不久的将来有次合作的机会
群:18994538
QQ: 364304745
个人主页:http://ldmcu.shangwusou.com/ |
|
|
|
|
|
- UID
- 118300
- 性别
- 男
|
基本上搞明白了,不是程序的问题,是硬件的问题,因为我得笔记本没有串口,所以我采用了两根USB转RS232的转接头,一个45块钱,一个25块钱,结果问题处在25块钱的那根线上,那根线在传送数据的时候会丢侦,所以才导致乱码和收不到指定的字符吧,后来把程序移植到有串口的PC机上后就不存在这些问题了
艾,便宜没好货啊 |
|
|
|
|
|