打印

中断问题

[复制链接]
1775|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhaoxqi|  楼主 | 2011-9-28 12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这段时间在弄一个DSP和UART通信的问题。由于5502自带的就有UART接口(虽然存在复用,但是可以设置为UART口),所以就之间用芯片上带有的接口来做通信。
一开始在测试由DSP的UART口往外发送数据的时候,出现乱码

相关帖子

沙发
heweibig| | 2011-9-28 12:30 | 只看该作者
肯定是时钟没有设置正确

使用特权

评论回复
板凳
zhaoxqi|  楼主 | 2011-9-28 12:33 | 只看该作者
可以发送数据了,不过还是存在丢数据的问题,每次发送的字符串都会缺少第一个字符,而最后一个字符则会被发送两次

使用特权

评论回复
地板
zhaoxqi|  楼主 | 2011-9-28 12:35 | 只看该作者
现在测试用DSP的UART接口接收数据的时候,打算用data ready中断的方式来接收,但是在设置了UART的UART_eventEnable (UART_RINT);并且设置了UART_setCallback函数,该函数是用来设置中断对应的中断服务程序的。在设置了这两样以后进行UART的读数据测试,没有成功。

使用特权

评论回复
5
lizye| | 2011-9-28 12:36 | 只看该作者
试试用IRQ模块的void IRQ_enable函数

使用特权

评论回复
6
zhaoxqi|  楼主 | 2011-9-28 12:38 | 只看该作者
启用了IRQ_EVT_RINT2事件,IRQ_EVT_RINT2事件是MCBSP Port #2 Receive Interrupt,在5502中UART和MCBSP2是复用的。启用完IRQ_EVT_RINT2后,又使用了IRQ_globalEnable函数来设置INTM的值,可是即使是这样中断服务程序还是在数据送到UART的RX腿时没有被调用

使用特权

评论回复
7
jiahy| | 2011-9-28 12:47 | 只看该作者
是不是还有什么需要设置的地方没有设置呢?

使用特权

评论回复
8
zhaoxqi|  楼主 | 2011-9-28 12:48 | 只看该作者
如果直接将UART的fgets函数放在main函数中,直接读数据是可以的

使用特权

评论回复
9
shimx| | 2011-9-28 12:50 | 只看该作者
不放在中断服务程序里?

使用特权

评论回复
10
zhaoxqi|  楼主 | 2011-9-28 12:51 | 只看该作者
嗯,但是如果把UART的fgets函数放在一个while循环里,然后把这个while循环放在main函数里又读不了数了

使用特权

评论回复
11
jiaxw| | 2011-9-28 12:52 | 只看该作者
是否读取太快造成的

使用特权

评论回复
12
dengdc| | 2011-9-28 12:54 | 只看该作者
试着加一段延时每读一次过后

使用特权

评论回复
13
zhaoxqi|  楼主 | 2011-9-28 12:55 | 只看该作者
好吧,我试试

使用特权

评论回复
14
zhaoxqi|  楼主 | 2011-9-28 12:56 | 只看该作者
先结贴了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

808

主题

10636

帖子

4

粉丝