这里有个源码是串口发送接收数据的。
坐等悬赏分。
源码转自:《51单片机C语言创新教程》温子祺等著。
/*实验名称:串口收发数据实验
*描 述:在使用单片机的串口接收数据实验当中,
使用串口调试助手发送什么数据,
单片机采用查询法将接收到的数据返发到PC
*作 者:温子祺
*修改日期:2010/5/4
*/
#include "stc.h" //加载"stc.h"
/****************************************
*函数名称:UARTInit
*输 入:无
*输 出:无
*功 能:串口初始化
******************************************/
void UARTInit(void) //定义串口初始化函数
{
SCON =0x50; //8位数据位,允许接收
T2CON=0x34; //由定时器2作为波特率发生器
RCAP2L=0xD9; //波特率为9600的低8位
RCAP2H=0xFF; //波特率为9600的高8位
}
/****************************************
*函数名称:UARTSendByte
*输 入:byte 要发送的字节
*输 出:无
*功 能:串口发送单个字节
******************************************/
void UARTSendByte(unsigned char byte)//定义串口发送数据函数
{
SBUF=byte; //缓冲区装载要发送的字节
while(TI==0); //等待发送完毕,TI标志位会置1
TI=0; //清零发送完成标志位
}
/****************************************
*函数名称:main
*输 入:无
*输 出:无
*功 能:函数主体
******************************************/
void main(void) //主函数
{
unsigned char recv; //声明变量recv
UARTInit(); //串口初始化
while(1) //进入死循环
{
if(RI) //检测接收完成标志位置1
{
RI=0; //清零接收完成标志位
recv=SBUF; //读取接收到的数据
UARTSendByte(recv); //返回接收到的数据
}
}
}
追问大哥,你这程序小弟没咋看懂,好像是个返回原样的程序?分来的不容易,若有高见,望指点!
追答发送数据和接收数据可以通过 HexChar进行转换。
/******************************************************
* 函数名称: HexChar
* 输 入: 无
* 输 出: 无
* 功 能: 返回16进制值代表数字或者字母
******************************************************/
UCHAR HexChar(UCHAR ch)
{
if((ch>='0') && (ch='A') && (ch='a') && (ch<='f'))
{
return ch-'a'+10;
}
else
{
return 0x10;//这里返回什么值都没有所谓
}
}