标题: 关于单片机多机通讯的问题 希望各位大佬指教下 [打印本页]

作者: CalmBlank    时间: 2021-2-5 01:34
标题: 关于单片机多机通讯的问题 希望各位大佬指教下


作者: CalmBlank    时间: 2021-2-5 01:35
从机的代码
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void UART_init()         //从机需要开中断
        {
  
  TMOD = 0x20; //定时器1,工作方式2:8位、自动重装  0x0010_0000
  TH1 = 0xfd; //fd: 9600bps @ 11.0592M
  TL1 = 0xfd; //e8: 1200bps @ 11.0592M
  //f4: 2400bps @ 11.0592M
  REN = 1; //允许串口接收
  SM0 = 1;
  SM1 = 1; //SM0和SM1:串口工作模式3,主从模式 + 波特率可变
  SM2 = 1; //只接收地址(从机如此配置,主机不需要)
        TI=0;
        RI=0;
  ES = 1; //开串口中断
  TR1 = 1; //启动定时器1
  EA = 1; //中断 总开关
}
        void main()
{
       
        UART_init();


       
       
}



void ssio()   interrupt 4   //从机地址是0x01
{
        uchar addr;
        ES=0;
        addr=SBUF;
        RI=0;
        if(addr==0X01)
        {       
                P1=0X00;
                SBUF=0XAA;
                while(!TI);
                TI=0;
                while(!RI);
                RI=0;
                if(SBUF==0XFA)
                P1=0XF0;
               
               
        }
       
        ES=1;
}
作者: CalmBlank    时间: 2021-2-5 01:36
从机明明代码上发送的是0xaa 不知道为什么凭空多了个0xff出来
作者: wulin    时间: 2021-2-5 08:41
CalmBlank 发表于 2021-2-5 01:36
从机明明代码上发送的是0xaa 不知道为什么凭空多了个0xff出来

void main()
{
        UART_init();
        while(1);
}
作者: 人人学会单片机    时间: 2021-2-5 08:55
单片机串口1打印程序 可以打印3个十六位的变量 http://www.51hei.com/bbs/dpj-201660-1.html
作者: 人人学会单片机    时间: 2021-2-5 08:55
STC单片机串口发送 不需要while死等 串口接收执行软件复位 http://www.51hei.com/bbs/dpj-200927-1.html
作者: CalmBlank    时间: 2021-2-5 22:31
wulin 发表于 2021-2-5 08:41
void main()
{
        UART_init();

我试了一下 加了while(1)没有变化 还是会有一个0xff发出来.....
作者: CalmBlank    时间: 2021-2-5 23:01
wulin 发表于 2021-2-5 08:41
void main()
{
        UART_init();

void main()
{

        UART_init();
        SBUF=0X01;
        while(!TI);
        TI=0;
        if(RI==1)
                P1=0XAA;
        while(1);

}

写成这个样子 P1口的led也会亮....
作者: CalmBlank    时间: 2021-2-5 23:28
谢谢大佬,是串口初始化的问题   把sm0 1 2 ren 用scon表达就没有这个现象了 。。。也不知道为啥




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1