单片机串口通信的问题

2019-07-15 16:49发布

本帖最后由 music_mc 于 2015-6-17 22:55 编辑
  1. P0=0xf0;
  2. S2BUF=0xfc;       
  3. P0=S2BUF; //为什么这里P0=0X00???
  4. while(!(S2CON & S2ti));
  5. S2CON &= ~S2TI;
复制代码双机通信
单片机相同是STC15F60s2
波特率相同,误差%0为什么P0会是0x00?中断里面什么都没
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
music_mc
2019-07-15 23:17
本帖最后由 music_mc 于 2015-6-17 23:02 编辑
  1. void main()
  2. {
  3.         P_SW2 |= S2_S0;             //S2_S0=1 (P4.6/RxD2_2, P4.7/TxD2_2)

  4.         S2CON = 0x50;                //8位数据,可变波特率       
  5.         AUXR |= 0x01;                //串口1选择定时器2为波特率发生器               
  6.         AUXR |= 0x04;                //定时器2时钟为Fosc,即1T
  7.         T2L = 0x8F;                        //设定定时初值
  8.         T2H = 0xFD;                        //设定定时初值
  9.         AUXR |= 0x10;                //启动定时器2
  10.         IE2=0x01;
  11.         EA=1;

  12.         P0=0XF0;
  13.         S2BUF=0xfc;               
  14.         P0=S2BUF;                //为什么这里P0是0x00 ?
  15.         while(!(S2CON & S2TI));
  16.         S2CON &= ~S2TI;                       

  17.         while(1)
  18.         {
  19.         }
  20. }
  21. void Uart2() interrupt 8  using 1
  22. {

  23. }
复制代码

一周热门 更多>