首先,波特率要和上位机一致!然后你发送的时候,要每发一个数据,等待它发送完才能再发第二个数据,也就是判断TI有没有标志。你的波特率这么慢,更需要判断TI了!其实我不熟悉C的程序,但是大概可以看懂,希望对你有点帮助!
其实单片机串口通信,无所谓向谁发送数据,尽管写发送程序好了,该怎么发送就怎么写呀。当那串口线接到电脑,就向电脑发,接到另一个单片机就向单片机发,接到哪里就发到哪里,所以,写程序时,不必考虑向谁发。
51单片机c程序
void send_char_com( unsigned char ch)
{
ES=0;
TI=0;
SBUF=ch;
while (!TI );
TI= 0 ;
ES=1 ;
}
mian()
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x20; //定时器1定时方式2
PCON=0x00; //cup正常工作
TCON = 0x50; //设定时器1开始计数
TH1 = 0xfd; // 9600 11.0592MHz 1200波特率e8
TL1 = 0xfd;
TI = 1;//发送数据标志
TR1 =1; //启动定时器1
ES=1;
while(1)
{send_char_com(0xff) ;//发送255
send_char_com(0xaa) ;//发送 aa
}
}
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
都有内置的函数或SDk开发包的,查看一下就知道了撒!
51单片机c程序
void send_char_com( unsigned char ch)
{
ES=0;
TI=0;
SBUF=ch;
while (!TI );
TI= 0 ;
ES=1 ;
}
mian()
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x20; //定时器1定时方式2
PCON=0x00; //cup正常工作
TCON = 0x50; //设定时器1开始计数
TH1 = 0xfd; // 9600 11.0592MHz 1200波特率e8
TL1 = 0xfd;
TI = 1;//发送数据标志
TR1 =1; //启动定时器1
ES=1;
while(1)
{send_char_com(0xff) ;//发送255
send_char_com(0xaa) ;//发送 aa
}
}