打印

用过现代MC80F7708的大虾请进!

[复制链接]
10800|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
维修超人|  楼主 | 2010-12-21 21:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
接了个项目,使用MC80F7708,用其UART与无线模块通信。
调试了两天,7708的UART很成问题,TX0、RX0在R50、R51脚与LCD的seg0、seg1复用。我的配置是这样的:
PSR0  = 0x0C;  // IO    IO,   IO,   RXE,  TXE,  IO  -(UART的功能使能在R0端口选择寄存器,但管脚在R5,高电平使能)      
  ……
R5IO  = 0xFA;  // out, out,out,out,   out,in(ACK0),out(TX0),in(RX0),      
R5  = 0x00;   //           
R5PSR  = 0x00;  // seg7, seg6, seg5, seg4, seg3, seg2, seg1(TX0), seg0(TX0)(R5端口选择寄存器,全零使能LCD)  
  ……
IENH  = 0x0C;   //  x, INT2(6), INT1(5), INT0(4),RX(3),TX(2),x,x,使能UART中断

/************UART 初始化******************/
void Uart_Initial(void)
{
ASIMR0 = 0xC0;   // 1100_0000b  TX and RX mode,no parity,1bit stop 接口方式寄存器
BRGCR0 = BAUD_2400;  // default BAUD = 2400 bps 波特率发生器寄存器,BAUD_2400=0x5a,fmain=4MHz
f_OnRxUart = OFF;   //
    iTemp  = RXBR0;   // clear overrun error !!!
}


现在的问题是,给传输移位寄存器(TXSR0)赋值能正常触发串口中断,但是用逻辑分析仪监测TX0端口没有数据。
逻辑分析仪用串口调试软件测试没问题。初步判断是UART端口配置不正确,导致数据没有输出。
应该如何配置UART口,请用过现代MC80F7708的大虾指点指点。(附MC80F7708DATASHEET)

MC80F7708_CN.pdf

3.04 MB

相关帖子

沙发
维修超人|  楼主 | 2010-12-30 23:23 | 只看该作者
问题前几天解决了。关键点是:保持PSR0= 0x0C;
R5IO  = 0xFA;  // out, out,out,out,   out,in(ACK0),out(TX0),in(RX0),      
R5  = 0x00;   //           
R5PSR  = 0x03;  // 即跟UART相关引脚必需设为IO口模式,不能设为第二功能即LCD管脚。
另,7708的UART接收、发射中断向量是相同的(C中对应INT9),由中断标志IFRX0、IFTX0判断是接收完成中断还是发送完成中断。
7708好像比较少人用,今在此立碑,希望对以后“寻路”到此处的游人有所帮助。

使用特权

评论回复
板凳
missionic| | 2011-11-30 10:02 | 只看该作者
提示: 该帖被管理员或版主屏蔽
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:没有什么能够阻挡,我对单片机的向往,天马行空的生涯,我的心了无牵挂。

3

主题

45

帖子

2

粉丝