找回密码
 注册
搜索
查看: 1391|回复: 3

[讨论] [MTK] 请教怎样从串口不间断的收数据

[复制链接]
发表于 2009-5-4 18:15:16 | 显示全部楼层 |阅读模式
在25平台下,在一段时间内独占串口uart_port1,读取所有发往uart_port1的数据。

我现在参考蓝牙模块的实现方法,通过注册消息处理函数的方式,在MMI模块收数据:

1,在MMI_task()函数开始的位置,调用 UART_SetOwner(uart_port1, MOD_MMI)。

2,紧跟着调用 SetProtocolEventHandler(MyReadComm, MSG_ID_UART_READ_TO_READ_IND)。

3,在MyReadComm的入口,调用UART_GetOwnerID(),如果发现owner不是MOD_MMI,就再次调用UART_SetOwner(),把串口抢回来。直到使用完毕。

但现在收数据异常,PC端用串口调试助手发数据,手机端有时候能收到,有时候收不到,情况很不稳定。

盼大人解答。[em01]

不清楚算不算底层驱动,版主手下留情。[em10]
[此贴子已经被作者于2009-5-5 6:55:05编辑过]
 楼主| 发表于 2009-5-4 18:16:49 | 显示全部楼层
对了,我已经进入“*#3646633#”,把PS-config和TST跟uart1相关的部分给关了。[em06]
点评回复

使用道具 举报

 楼主| 发表于 2009-5-5 14:21:40 | 显示全部楼层
现在使用的是DMA_VFIFO的方式来处理串口数据。

串口在收到数据后,会在HISR中调用uart_default_rx_cb,然后才会向owner发送MSG_ID_UART_READY_TO_READ_IND.

我现在在HISR中直接调用EXT_ASSERT(手机会重启),然后通过串口1向手机发送数据,发现必须连续发送N次数据后(每次数据长度15直接,N大约在10次以上,但也有30次的情况),才会执行到EXT_ASSERT的地方。

也就是说,我这里的UART驱动并不能实时收数据。

不知道我理解的对不对。[em13]
点评回复

使用道具 举报

发表于 2012-1-30 16:32:35 | 显示全部楼层

问题解决了吗?我最近也碰到类似的问题

问题解决了吗?我最近也碰到类似的问题
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-15 10:29 , Processed in 0.046207 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表