当前位置:首页>维修大全>综合>

c语言串口通信实例(c语言串口编程源码实例)

c语言串口通信实例(c语言串口编程源码实例)

更新时间:2024-03-13 22:44:19

c语言串口通信实例

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];

}

}

}

}

这个程序是带奇偶校验的,可以在设置的时候去掉

更多栏目