搜索
bottom↓
回复: 6

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

[复制链接]

出0入0汤圆

发表于 2012-8-15 17:51:43 | 显示全部楼层 |阅读模式
实验程序很简单,单纯发送数据,但串口调试助手收不到数据,自己排查好久了,请大家帮忙看一下。

#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();
   
}




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-8-16 07:41:43 | 显示全部楼层
各位帮忙看一下啊,有图有程序,谢谢。

出0入0汤圆

 楼主| 发表于 2012-8-17 09:00:12 | 显示全部楼层
坛子真冷,还是自己慢慢查吧

出0入0汤圆

发表于 2012-8-24 16:24:53 | 显示全部楼层
。。竟然和我用一样的单片机

1、检查一下你的硬件:接上的你的232,用串口调试助手,自发自收一下,正常情况下能收到自己发的东西;
2、程序:检查一下你的寄存器的设置,若是认为设置没问题,就用示波器量一下波形;

这款单片机的资源还是蛮多的,就是慢点;

出0入0汤圆

发表于 2012-12-6 13:09:45 | 显示全部楼层
楼上的调好没?能否说一下什么原因?

出0入0汤圆

发表于 2012-12-10 20:26:55 | 显示全部楼层
这个情况一般是你串口寄存器没有配置对。
1.先用示波器检测TXD有没有信号输出。没有的话,仔细查看寄存器配置
2.有信号,那就是波特率没有配置对。查看时钟选择的相关寄存器。

出0入0汤圆

 楼主| 发表于 2012-12-20 10:35:45 | 显示全部楼层
这个早就调好了,问题出在仿真器默认时钟为4M,所以时钟寄存器设置不对。谢谢大家,结贴了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 00:36

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

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