热门关键词: 彩钢夹心板设备 电工机械设备 太阳能取暖设备 小型洗衣粉生产设备 东莞市净水设备 apmp制浆设备 工业缝纫设备
  IC库存(8958万) PDF资料(329万) IC价格 IC求购 资讯 技术资料
电子元器件搜索:
维库电子市场网是知名的电子元器件交易网站,为电子生产企业提供IC库存和技术资料查询服务。
相关专题
紧急求助485通讯问题!!多谢!!!
新闻出处:21ic 发布时间:2007-07-02
ky_21ic 发布于 2007-7-2 11:22:00
我用的是C8051F040的片子.部分程序略:
问题是:写了中断接受函数好用,但发送发送的就是乱码????????为什么啊!!
程序代码如下:

void UART0_Init (void)
{
           char SFRPAGE_SAVE = SFRPAGE;
           SFRPAGE = UART0_PAGE;
        SCON0   = 0X50;
        SCON0  &= 0xFC;         //清中断标志
        SSTA0   = 0x10;        //禁止UART0波特率2分频//SMOD0=1
        
        IE   = 0x90;            //开UART1中断
    
           SFRPAGE = TIMER01_PAGE;
           TMOD    = 0x20;                    // TMOD: timer 1, mode 2, 8-bit reload
        CKCON   = 0x10;                         //TIM=1

        TH1         = 0x70;
           TL1         = TH1;                          // initialize Timer1
           TR1         = 1;                            // start Timer1
        

           SFRPAGE = UART0_PAGE;
           TI0         = 1;  
                                                    // Indicate TX1 ready
        SFRPAGE = CONFIG_PAGE;
        CTRL    = 0;                            //485收发控制
           SFRPAGE = SFRPAGE_SAVE;                 // Restore SFR page
}
//*************************************************************
//****************发送函数*************************************
//*************************************************************
void SendUART0(uchar PP)        //发送
{
        EA  = 0;

        SFRPAGE = CONFIG_PAGE;
        CTRL    = 1;   //485发送控制

        SFRPAGE=UART0_PAGE;
                  SBUF0=PP;
                  while(TI0==0);
                  TI0 = 0;
                       


        SFRPAGE = CONFIG_PAGE;
                CTRL    = 0;

        EA      = 1;

}

void main (void) {
    UART0_Init ();EA = 1;
    SendUART0('A');
    wait_ms(100);//}


XZL 发布于 2007-7-2 14:28:00
1\允许发送有效后要延时一段时间再发送(你没有延时)
2\要确认你的晶体没有问题(影响波特率)



关闭】【打印
友情链接:
© 2007 电子设备网 网站地图