STC最新的STC8串口1接收中断无反应,是不是芯片的BUG ???

2020-03-08 19:21发布

本帖最后由 逍遥派掌门 于 2018-1-16 17:50 编辑

      看到STC8的片子资源不错,到淘宝搞了两片以及转接板(转成DIP40的),然后接到STC89的开发板上,
硬件电路没有问题,ISP下载程序非常顺利。用的是STC自家的ISP软件,还带串口助手的。
      简单的写了个串口1的中断程序,没有想到接收那里居然没有反应,同样的代码在STC89里可是跑成功的,
折腾了好久,就是失败,到STC那里提出这个问题,结果好几天都没有答复。
       怀疑是STC8的片子的BUG,请网友讨论。
程序:
  1. void UartInit(void)                //115200bps@11.0592MHz  
  2. {        
  3.           P3M0 = 0xFF;     // 设置强挽推
  4.           P3M1 = 0x00;
  5.         
  6.     SCON = 0x50;
  7.     T2L = BRT;
  8.     T2H = BRT >> 8;
  9.     AUXR = 0x15;
  10.         
  11.     ES = 1;                                    
  12.     EA = 1;
  13. }

  14. void serial() interrupt 4
  15. {  
  16.    if (RI)       //  这里一直进不去,P10没有动静
  17.    {
  18.            RI=0;                 
  19.            P10 = ! P10;
  20.          }

  21.      if (TI) // 这里成功的,没有问题
  22.       {
  23.              .......
  24.        }
  25. }
复制代码
主程序就是: UartInit ; while(1){}; 不写出来了,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
ningling_21
1楼-- · 2020-03-09 12:58
是不是有些寄存器没设置
逍遥派掌门
2楼-- · 2020-03-09 18:19
本帖最后由 逍遥派掌门 于 2018-1-24 14:05 编辑

被ISP下载软件误导了,I/O设置成准双向的就可以了。 结帖
  1. void UartInit(void)                      //115200bps@11.0592MHz  
  2. {        

  3. #define select_time_1               // 使用定时器1
  4.         
  5.     P_SW1 = P_SW1 & 0x3F;      // 串口1的脚为:P3.0,p3.1
  6.     P3M0 = 0x00;               // 设置为准双向
  7.     P3M1 = 0x00;        
  8.         
  9.     SCON = 0x50;
  10. #ifdef select_time_1           //  定时器1作为波特率发生器
  11.     TMOD = 0x00;
  12.     TL1 = BRT;
  13.     TH1 = BRT >> 8;
  14.     TR1 = 1;
  15.     AUXR = 0x40;
  16. #else                         //   定时器2作为波特率发生器
  17.     T2L = BRT;
  18.     T2H = BRT >> 8;
  19.     AUXR = 0x15;
  20. #endif               
  21.         
  22.     ES = 1;               
  23.     EA = 1;
  24. }
复制代码
7943603
3楼-- · 2020-03-09 23:43
 精彩回答 2  元偷偷看……
jazhhu
4楼-- · 2020-03-10 05:03
P3M0 = 0xFF;     // 设置强挽推
          P3M1 = 0x00;

问题在这里
songchenping
5楼-- · 2020-03-10 09:57
jazhhu 发表于 2019-1-15 18:01
P3M0 = 0xFF;     // 设置强挽推
          P3M1 = 0x00;

我设成00也不行。
ayb_ice
6楼-- · 2020-03-10 10:53
接收设置成推挽,外部信号低不打架了吗

一周热门 更多>