微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 78F0485,RS232串口通信失败,求指教,谢谢。

78F0485,RS232串口通信失败,求指教,谢谢。

时间:10-02 整理:3721RD 点击:
程序向PC发数据,但串口调试助手收不到,程序如下,自己排查好久了,麻烦大家帮忙看一下。
#pragma SFR
#pragma EI
#pragma ACCESS
#pragma ROT
#pragma NOP
#pragma ASM

#define uchar unsigned char
#define uint  unsigned int
sreg uchar flag_ASIF6;   
void f_send_data(uchar);
void DelayMS(uint x)     
{
        uint i;
        while(x--)
        {
                 for(i=29;i>0;i--)
                 { NOP(); }
        }
}
void system_init()
{
  IMS=0b11001111;
  IXS=0xA;
  OSCCTL=0x40;         
  RCM=0x3;
  MSTOP=0;
  MCM=0x7;

//IO INIT
  PM1=0b10101110;       //TXD6 output RXD6 input P1.0 p1.4 output
  P1=0B01000000;         //TXD6=1
        
}
void UART6_init()
{
    TXE6 = 0;        /* uart6 transmit disable */
    RXE6 = 0;        /* uart6 receive disable */
    STMK6 = 1;        /* INTST6 disable */
    SRMK6 = 1;        /* INTSR6 disable */
    STIF6 = 0;        /* INTST6 IF clear */
    SRIF6 = 0;        /* INTSR6 IF clear */
   CKSR6=1;            //n=2;
   BRGC6=208;           //9600=(f/n)/(2*K)  8MHZ
  ASIM6=0B00000101;     //no ERR;data_length 8 stop_bit 1 INTSR6
  ASICL6=0B00010110;    //SBF_out 13 LSB  OUTPUT_normal
  ISC=0B00110011;       //TXD P16  RXD6 P15
  PF1=0B01000000;       //P16  TXD6

}
void UART6_start()
{
  // STMK6 = 0;        /* INTST6 enable */
  // SRMK6 = 0;        /* INTSR6 enable */
   POWER6 = 1;       /* uart6 enable */
   TXE6 = 1;         /* uart6 transmit enable */
   RXE6 = 1;         /* uart6 receive enable */
}
void main()
{
    system_init();        
    UART6_init();
    UART6_start();
        
     EI();                        
//  P1.0=1;        //led
    NOP();  
                  
    while(1)
    {
      P1.0=~P1.0;
      f_send_data(0X76);
      NOP();NOP();
      DelayMS(100);  
         
     }
        
}
void f_send_data(uchar send_data)
{
   flag_ASIF6= ASIF6;
   while( flag_ASIF6.1)
   {
      flag_ASIF6= ASIF6;
   }
   TXB6=send_data;
   NOP();NOP();
   NOP();NOP();
}

RS232部分


哪位大侠指点一下啊

给你说个排查方法:1先检查硬件是不是有问题,一般是232有时候会多少存在那么一点点小问题,下一步检查接受或者发送固定的一个数据,看是否ok,后面再继续。一步一步来。

嗯,感谢小编!还是要靠自己慢慢查,不吃透是不行的

1.  先检查硬件是否无误             2. 用示波器检查发送端口 是否有波形   3.最后看看程序是否有错

谢谢小编分享学习资料

RS-232转RS-485转换器,rs485集线器(485HUB),rs485中继器,TCPIP转RS-232/485,光纤转232/485(光猫),数字视频光端机系列,usb转232/485接口转换器
深圳市研通科技szyantong

上一篇:单片机和电机供电问题
下一篇:1602液晶

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top