C语言串口通信实例可以使用串口库函数实现。首先,通过打开相应的串口端口,设置波特率、数据位、校验位等参数。
然后,通过读取和写入串口数据的函数实现双方的通信。
可以使用while循环不断地读取串口接收缓冲区中的数据,然后进行相应的处理,如打印或存储数据。
发送数据时,可以将需要发送的数据放入发送缓冲区,然后通过写入函数将数据发送出去。需要注意及时关闭串口,并进行错误处理,以保证通信的稳定性和可靠性。
供参考
void MCU_Initialize(void)
{
SCON =0xDC; //在11.0592MHz下,设置串行口波特率为9600,方式3,并允许接收 9为
SCON = 0x50;
TCON = 0x00;
TMOD |=0x21; //定时器工作于方式2,自动装载方式 T0 16位定时器
TH1=0xFD;
IP = 0X90;
ES=1;
ET0=1;
//TR1=1;
EA=1;
}
////////////////////////////发送一个字节/////////////////////////////
/*void putchar(unsigned char byte)
{
if(JO_check(byte)==1)
TB8=0;
else
TB8=1;
SBUF=byte;
while(!TI)
TI=0;
} */
//////////////////////////////////串口接受程序 与350通信//////////////////////
void RX() interrupt 4
{
if(RI==1)
{
RI=0;
C8051F350[CaiYangJiShu]=SBUF;
if(RB8==JO_check(C8051F350[CaiYangJiShu]))
{
Ji_Ou_fail=0; //奇偶效验失败 通知F350从新发送
}
CaiYangJiShu++;
if(CaiYangJiShu==8)
{
TR1=0;
CS_350=1;
CaiYangJiShu=0;
// CAIYANG_over=0; //完成一次采样标志
if(C8051F350[0]==0x55 && C8051F350[1]==0x55 && C8051F350[6]==0xAA && C8051F350[7]==0xAA&&Ji_Ou_fail==1)
{
CAIYANG_over=0;
CaiYnagDat=0;
CaiYnagDat<<=8;
CaiYnagDat += C8051F350[5];
CaiYnagDat<<=8;
CaiYnagDat += C8051F350[4];
CaiYnagDat<<=8;
CaiYnagDat += C8051F350[3];
CaiYnagDat<<=8;
CaiYnagDat += C8051F350[2];
}
}
}
}
这个程序是带奇偶校验的,可以在设置的时候去掉