搜索
bottom↓
回复: 4

9234 UART在仿真运行时正常,去掉仿真器时,无输出

[复制链接]

出0入0汤圆

发表于 2011-9-7 16:56:56 | 显示全部楼层 |阅读模式
各位DX,9234 UART在连接仿真运行时正常,TXD有数据输出,但去掉仿真器后单独加5V电源,TXD无输出,其它功能正常,只是UART无输出,不明白是怎么回事。

出0入0汤圆

 楼主| 发表于 2011-9-7 17:06:40 | 显示全部楼层
第一次用NEC的UART,有没遇到类似情况的大侠?

出0入0汤圆

 楼主| 发表于 2011-9-7 17:14:06 | 显示全部楼层
使用的是内部振荡器


void UART_Init(void)
{
//--------------------------------UART6 define
    CKSR6=0x04;                                        //Fxp/16 => 8M/16=500KHz
    //Baud ratio setting
    BRGC6=26;                                                //BGR=CKSR6/BRGC6=9.6Kbps
   
    ASIM6=0x04;                                        //General "INTSRE6" (NO INTSR6),Stop bit = 1,8bit format
                                                                                                //No receive check bit,No send check bit
                                                                                               
    ASICL6=0;                                                //TxD6=Normal mode no reverse,The first bit is MSB
   
    POWER6=1;                                                //Enable internal clock operation
   
    ISC=0x03;
   
    TXE6=1;                                                        //Enable TX
    RXE6=1;                                                        //Enable RX
    //TxD port setting
    PM4&=~0x08;
}                  


void uart_pro(void)
{
        if(uart_update_intvl==0)
        {
                uart_update_intvl=100;                                        //10ms X uart_update_intvl
               
                while(ASIF6&0x02);
                TXB6=0xaa;
                while(ASIF6&0x02);
                __asm("nop");
        }
}

出0入0汤圆

发表于 2011-9-9 22:58:01 | 显示全部楼层
/*===========================================
function:                UART6 transmit data
input:                        single byte data
specification:        no
============================================*/
void Uart6_Init_Trans(void)
{
        //0. set I/O P43 as output mode for Txd6;
        P4.3=1; PM4.3=0;         //first set P4.3
       
        //1. set CKSR6 register of UART6 clock;
        CKSR6=0X04;                //Fxclk6=Fxp/16=8M/16=500KHZ(Fx=Fxp=8MHZ);
       
        //2. set BRGC6 register of UART6 band;
        BRGC6=0X1A;                //26  //band=Fxclk6/2*26=500k/52=9615 bps;
       
        //3. set ASIM6 4-0 bit(PS61,PS60,CL6,SL6,ISRM6);
        //ISRM6=1;                //no INTSRE6 interrupt when receive error;
                                        //allowance INTSR6 interrupt when receive error;
                                        //but need check the data in interrupt routine.
        //SL6=0;                //one stop bit;
        //CL6=1;                //data length=8 bits;
        //PS61=1;PS60=1; //even check;
        //ASIM6.0=1;
        //ASIM6.1=0;
        //ASIM6.2=1;
        //ASIM6.3=0;
        //ASIM6.4=0;
        ASIM6 =0b00011101;
       
        //4. set ASICL6 1-0 bit(DIR6,TXDLV6);
        //TXDLV6=0;                //normally output with no inverse;
        //DIR6=1;                //MSB be sended first;
        ASICL6 =0b00000010;
       
        //5. set ASIM6 7 bit(POWER6=1);
        POWER6=1;                //allowance operating for UART6;
                                        //TXD6 pin output '1' level;
       
        //6. set ASIM6 6 bit(TXE6=1);
        NOP();
        TXE6=1;        //allowance send mode;
       
        //7. if using interrupt,must set below;
        STMK6=1;STIF6=0; //prohibit interrupt
       
}

unsigned char Uart6_Trans(unsigned char tdata)
{        unsigned char i;
       
        //start transmit data;
        NOP();
        i=ASIF6 & 0x02;                //TXBF6 must be =0 before send next data;
        if(i==0x00)                 //judge the TXBF6==0;
        {       
                TXB6=101;
                return 1; //send successed
        }
        else
                return 0; //send failure
       
}


与楼主同问,我的有输出,但输出不对,是乱码,不知啥原因?
请楼主帮我也看看。


我看了下你的程序,回楼主:
while(ASIF6&0x02); //这里应该取反吧
应该改期成:while(!(ASIF6&0x02)); //必须等TXBF6为‘0’,才可写下一个数据。(规格书是这样写的)
TXB6=0xaa;
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-3 17:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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