单片机和PC通过串口通信
/接收数据结束
check_sum -= rec_temp;//计算最终校验和
if((uchar)check_sum==rec_temp)//判断数据接收是否正确,
{//数据最后一位是校验和的后8位
rec_flag = 1;//置接收完成标志
}
}
}
}
}
//==================================================
//函数:void UART1_Demo(void)
//描述:串口通信测试程序,使用T1方式2自重载方式做波特率发生器,
//串口使用方式1,8位,可变波特率
//晶振22.1184MHz,波特率9600;
//参数:无
//返回:无
//作者:geoff日期:2010/11/08
//修改:geoff日期:2010/11/09
//版本:V1.1
//==================================================
void UART1_Demo(void)
{
UART1_Init();
TI = 1;//SBUF置空
/////测试用
LCD_RegWrite(0x80);
while(1)
{
if(rec_flag == 1)//把接收到的数据,发送到串口输出
{
rec_flag = 0;//清接收完成标志
UART1_Send_String(rec_buf,REC_BUF_LEN);
}
Rst_WDT();//喂狗
}
}
//==================================================
//函数:void main(void)
//描述:主函数
//参数:无
//返回:无
//作者:geoff日期:2010/11/08
//修改:日期:
//版本:V1.1
//==================================================
void main(void)
{
LCD_Init();//单片机LCD初始化
UART1_Demo();
}
本文通过约定特定通信协议,实现单片机和PC的通信,经过测试,单片机收发正常;出现不能通信时,可以多发几个非0XFA数据,让单片机准备接收,然后按照约定的格式发送,并保证每次发送字符长度为10个字节。
单片机PC串口通 相关文章:
- C51单片机与PC串口通信的单片机部分程序(11-24)
- 51单片机与PC串口通信程序(11-20)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)