打印
[ZLG-ARM]

求助,lpc2103的uart1工作不正常,txen跳变。uart0稳定

[复制链接]
1656|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xzm0662|  楼主 | 2008-9-24 09:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
几乎一样的代码(除了uart0,uart1的寄存器),初始化,中断服务,相同的接收处理程序。但是uart1运行不稳定,有时txen会变成0,有时又变回1来。uart0运行稳定。两天多了,查不出问题。

有谁能帮我,谢谢!

开始以为txen没初始化,在初始化加上txen初始化也不行。
另外谁知道txen什么情况下会变化?

相关帖子

沙发
zlgarm| | 2008-9-26 08:17 | 只看该作者

RE:xzm0662

您好!
考虑了很久,也查了一些资料,但确实想不到这是什么原因。
您可尝试写个测试例程单独对UART1进行一下测试,观察一下TXEN变成0时UART1的其它寄存器有何异常。不防试试。

使用特权

评论回复
板凳
xzm0662|  楼主 | 2008-9-27 01:24 | 只看该作者

今天用另一块板子测,txen还是0,但是通讯功能正常

用的iar 4.42+jlink,应该算是最好的装备了。
直接运行时停下看寄存器(用iar的寄存器查看窗口),uart0这个寄存器0x80,对应txen位1,uart1这个u1ter寄存器0x04,对应txen位0。
但是这个板子通讯正常,真是诡异。
而且iar可以修改uart0的txen位,不能修改uart1的txen位,不知为何

使用特权

评论回复
地板
xzm0662|  楼主 | 2008-9-27 01:40 | 只看该作者

又测一遍,竟然发现是IAR的错误

IAR的器件定义文件*.ddf竟然把地址写错了,把u1ter定义在

sfr = "U1TER"                 , "Memory", 0xE001C030,        1, base=16
sfr = "U1TER.TXEN"            , "Memory", 0xE001C030,        1, base=16,    bitRange=7-7
显然搞错了。辜负了我对IAR的信任。

刚才用memory窗口看到了0xE0010030看到了正确的u1ter才恍然大悟。
麻烦周公了!
那我另一块板子通讯不通很可能是断线了....寒,被这个并不存在的控制位折腾好几天

使用特权

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

本版积分规则

35

主题

163

帖子

0

粉丝