如何进行单片机与PC机的串口数据读取通信?

2024-11-02 18:22:20
推荐回答(3个)
回答(1):

首先硬件要有MAX232芯片做电平转换 或者直接用pl2303做usb转串口.
软件要有一个串口调试工具.
至于程序就是 (1):设置串口相关寄存器 注意波特率设置
(2):把数据放在sbuf里面
(3):检查是否发送完毕没完等待 发完了就继续放

各种单片机设置方法不一样就给你一个51 的程序你参考一下:

//wx原创 串口调试程序 向pc发送数据 用于调试观察数据
#include
#include
sbit k1=p10;
void ckfszf(char zf);
void ckfszfc(char fsgs,char zfc[]);
bit cksnbzw=0;
char fsb[]={"abcdef"};
main()
{
PCON=0x80; //串口设置
TMOD=0x20; // 以T1定时器为波特发生器 波特率:19200
TH1=0xfD;
TL1=0xfD;
TR1=1;
SCON=0X50; //串口设置模式一完毕
while(1)
{
TI=1;
ckfszfc(6,fsb);
ckfszf(' ');
ckfszfc(9,"1234567890");
ckfszf(' ');
ckfszf(' ');
ckfszf(' ');
ckfszfc(12,"AABBCCDDEEFFGG");
ckfszf(' ');
while(1);
}
}
//字符 串口发送函数 由串口向外发送一个字符
//参数1:要发送字符
//返回值:无
//备注: 本函数内部检查上次发送是否结束
// 全局初始化要求:TI=1 保证第一次进入此函数之前TI=1
void ckfszf(char zf)
{
while(TI==0); //等待发送完毕
TI=0;
SBUF=zf;
}
//字符串 串口发送函数 由串口向外发送一个字符串
//参数1:要发送字符串个数 取值:0~255
//参数2:要发送字符串数组名 或字符串本身
//返回值:无
//备注: 本函数内部检查上次发送是否结束
// 全局初始化要求:TI=1 保证第一次进入此函数之前TI=1
void ckfszfc(uchar fsgs,char zfc[])
{
uchar i;
cksnbzw=1;
for(i=0;i {
ckfszf(zfc[i]);
}
}

纯手打 原创程序 给分!

回答(2):

有个max232芯片转电平就行了,有卖那种里面有232芯片的线,
一头接单片机串口,一头接电脑串口,没有串口有那种串口转usb的口。

程序么,就是设置下波特率,
想发啥,就往sbuf里面放,就上去了,就这么简单

回答(3):

百度文库 里的文档很多