首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于InstallComCallback函数和WriteFile函数

关于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会发现些进去的是乱码,而有时候写进去的又是正常的?这是什么原因呢?是不是在往文件里面写的时候,收进来的数据要做一些转变啊?如果要转的话,该怎么转呢?


 


谢谢大家

^_^
对于第一个问题:
应该不会有两个串口冲突的问题,可以考虑你的串口是否工作正常;你可以这样,单独编写两个程序,第一个使用com1第二个使用com2,单独运行看是否都能够正常工作?如果能就可以证明串口工作正常,可以检查程序的问题,使用两个线程分开工作。

对于第二个问题:
如果你从串口监视看到的字符不是乱码的话,那么写进文件后也不会出现乱码,应该是写进文件时是否有丢位或错位的问题。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
基本上搞明白了,不是程序的问题,是硬件的问题,因为我得笔记本没有串口,所以我采用了两根USB转RS232的转接头,一个45块钱,一个25块钱,结果问题处在25块钱的那根线上,那根线在传送数据的时候会丢侦,所以才导致乱码和收不到指定的字符吧,后来把程序移植到有串口的PC机上后就不存在这些问题了
艾,便宜没好货啊
^_^
返回列表