阅读:2813回复:12
按下触控,com port接收遗失1~2BYTE,可有解决之道? (已解决)
按下触控会影响com port接收遗失1~2BYTE,可有解决之道?
兄弟,如提…因为在COM1~COM4进行较长数据接收 每笔约80-100BYTE… 因此按下触摸板时,监看数据却有1-2BYTE遗失了 改了INT_ADC的中断优先权低于com1…但还是一样遗失 把INT_ADC的中断干脆关了,有效..但是当然的,触摸板不能用了 拜求各位兄弟帮忙想想看 怎么解决..拜求 |
|
沙发#
发布于:2008-06-19 08:57
可以把COM驱动的硬缓存或软缓存加大些试试....
|
|
板凳#
发布于:2008-06-19 09:38
SetupComm(m_hPort1,4096,4096);
這夠大了吧 |
|
地板#
发布于:2008-06-19 14:14
够..硬件缓冲的处理调整看看
|
|
地下室#
发布于:2008-06-19 17:07
兄弟可否指点一二
因为FIFO 的UFCON0=0xF1; 设为16byte反而造成大约第20byte后乱跳 所以我都设0x41…这样就只有按下触摸板才会乱 另外 PortDCB.BaudRate = 115200; // Current baud PortDCB.fBinary = TRUE; // Binary mode; no EOF check PortDCB.fParity = TRUE; // Enable parity checking PortDCB.fOutxCtsFlow = FALSE; // No CTS output flow control PortDCB.fOutxDsrFlow =FALSE; // No DSR output flow control PortDCB.fDtrControl = DTR_CONTROL_ENABLE; // DTR flow control type PortDCB.fDsrSensitivity =FALSE; // DSR sensitivity PortDCB.fTXContinueOnXoff =FALSE; // XOFF continues Tx PortDCB.fOutX = FALSE; // No XON/XOFF out flow control PortDCB.fInX = FALSE; // No XON/XOFF in flow control PortDCB.fErrorChar = FALSE; // Disable error replacement PortDCB.fNull = FALSE; // Disable null stripping PortDCB.fRtsControl = RTS_CONTROL_ENABLE; // RTS flow control PortDCB.fAbortOnError = FALSE; // Do not abort reads/writes on // error PortDCB.ByteSize = 8; // Number of bits/byte, 4-8 PortDCB.Parity = NOPARITY; // 0-4=no,odd,even,mark,space PortDCB.StopBits = ONESTOPBIT; // 0,1,2 = 1, 1.5, 2 这没得改了吧? |
|
5楼#
发布于:2008-06-20 09:49
0X41只一个BYTE的接收因该在115200是不好的吧,或许此时拨特率设低也可能可以.
建议设UFCON0=0x51;试试,并确认pdds3c2440_ser.cpp中 m_dwWaterMark = 8 ; |
|
6楼#
发布于:2008-06-20 14:04
WINCE4.2没有m_dwWaterMark = 8 ;
现在比较伤脑筋的是…没按下触摸板,一切正常 一旦按下触摸板..糟糕了,数据一定会丢失1-3byte |
|
7楼#
发布于:2008-06-20 15:11
可否缩短触摸处理的时间
|
|
8楼#
发布于:2008-06-20 15:57
WINCE_LOVER:
目前我的AP触摸板只剩下退出AP的功能, 其余都是WINCE自己的.. |
|
9楼#
发布于:2008-06-21 14:34
|
|
10楼#
发布于:2008-06-24 20:19
各位真的没解决方法了吗?...跪求大家了
按下触摸板…好像按多久,中断就占多久..因为LED闪的速度持续变慢 |
|
11楼#
发布于:2008-07-10 16:09
这么搞好的
|
|
|
12楼#
发布于:2010-03-20 16:19
解決了...和中斷 沒啥關聯
buffer清掉即可 |
|