主题:step2_serial 共有35589人关注过本帖 |
---|
yusheng |
1楼 |
step2_serial Post By:2009-3-11 10:29:00 [只看该作者]
您好:
    用EM9260调试入门程序step2_serial,每接收一次只有8字节吗?如我用串口助手发一串长度10字节的,它要分两次接收。如何改成一次可接收到大于八字节的接收方式?    另char DatBuf[1500];可以定义成unsigned char DatBuf[1500]吗?    谢谢! |
|
单帖管理 | 引用 | 回复 |
lqk |
2楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2009-3-11 12:36:00 [只看该作者]
你好:
因为串口控制器内部Buffer长度为8个字节,所以一次中断最多接收8字节数据,并将数据放在了DatBuf中,如果没有及时读取DatBuf中的数据,数据将存在DatBuf中,在下一次读取时将一次性读出。 另char DatBuf[1500]可以定义成unsigned char DatBuf[1500]。 |
单帖管理 | 引用 | 回复 |
lqk |
3楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2009-3-11 12:54:00 [只看该作者]
你好:
更正一下上面的: 程序中中断一次接收8个字节,并不是因为串口控制器内部FIFO长度为8Byte(其实是16Byte),而是我们对串口控制器的设置为:串口控制器接收FIFO触发级(阈值)为8Byte时,控制器将产生中断。 |
单帖管理 | 引用 | 回复 |
yusheng |
4楼 |
Post By:2009-3-11 14:32:00 [只看该作者]
那如果没有及时读取DatBuf中的数据,下次又接收了新的数据,会不会把前次的数据覆盖掉?
|
|
单帖管理 | 引用 | 回复 |
lqk |
5楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2009-3-11 17:21:00 [只看该作者]
就我们的例程来讲:
在执行ReadFile读取串口接收数据时,原来DatBuf中的数据被覆盖 不太明白你说的:是没有及时执行ReadFile,还是执行了ReadFile,而没有及时处理DatBuf中的数据呢。 |
单帖管理 | 引用 | 回复 |
yusheng |
6楼 |
Post By:2009-3-11 17:43:00 [只看该作者]
我是说执行了ReadFile,而没有及时处理DatBuf中的数据。
呵呵,谢了 |
|
单帖管理 | 引用 | 回复 |
lqk |
7楼 信息 | 搜索 | 邮箱 |
加好友 发短信 |
Post By:2009-3-11 18:23:00 [只看该作者]
在我们的例程中:
如果在执行了ReadFile后,没有处理DatBuf中的数据,下一次执行ReadFile时,DatBuf中的数据被覆盖。 你可以修改我们的例程,自己决定DatBuf的数据存放处理方式。 |
单帖管理 | 引用 | 回复 |