MFC串口传输MSCOMM控件的调用问题
我用MFC做的串口接收,MSCOMM那个activeX控件的函数,串口缓冲区一有数据就被调用。可我希望串口接收到数据,而且符合其他条件下,这个函数再被调用,请问可以实现么...
我用MFC做的串口接收,MSCOMM那个activeX控件的函数,串口缓冲区一有数据就被调用。可我希望串口接收到数据,而且符合其他条件下,这个函数再被调用,请问可以实现么
展开
展开全部
可以实现,使用MSCOMM控件中SetRThreshold()方法函数
SetRThreshold(n)表示数据来了n个,就触发一次OnComm事件,但并不是说总共N个数据,就会触发N/n次OnComm事件,每次OnComm事件读到的数据只会比n多,不会比n少,因为在你处理OnComm时,可能就会又有数据进来 。
比方SetRThreshold(1),如果你串口连续有数据,波特率较高,一般都会在OnComm时发现其实GetInput的数据远远不止1个,这个字符数并不一定 OnComm是会不断触发的,只要你串口里面有数据,上一次没取走的数据会在下一次OnComm时获得。如果你要一次获得很多个数据,将你的SetRThreshold值设得大一些。
SetRThreshold(n)表示数据来了n个,就触发一次OnComm事件,但并不是说总共N个数据,就会触发N/n次OnComm事件,每次OnComm事件读到的数据只会比n多,不会比n少,因为在你处理OnComm时,可能就会又有数据进来 。
比方SetRThreshold(1),如果你串口连续有数据,波特率较高,一般都会在OnComm时发现其实GetInput的数据远远不止1个,这个字符数并不一定 OnComm是会不断触发的,只要你串口里面有数据,上一次没取走的数据会在下一次OnComm时获得。如果你要一次获得很多个数据,将你的SetRThreshold值设得大一些。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询