计算机如何接受单片机发来的数据
这个要看你的具体要求,如果是单一的测试你可以直接用串口调试助手,前提条件你必须写好单片机串口通讯程序,我给你个参考程序啊,我前段时间帮一位网友写的串口调试助手控制单片机LED开关,下位机介绍到上位机数据后,然后再把接收到的数据返回给上位机。
/*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
**/
#include "REG52.H"
#include "INTRINS.H"
/*
* 相当于宏定义
*/
typedef unsigned char INT8U;
typedef unsigned int INT16U;
/*
* P1端口LED
*/
sbit LED_Input0 = P1^0;
sbit LED_Input1 = P1^1;
sbit LED_Input2 = P1^2;
sbit LED_Input3 = P1^3;
sbit LED_Input4 = P1^4;
sbit LED_Input5 = P1^5;
sbit LED_Input6 = P1^6;
sbit LED_Input7 = P1^7;
/*
* 变量
*/
unsigned char UART_Byte;
/*
* 向串口发送一个字节数据
*/
void UART_Send_Buf(unsigned char Byte)
{
EA = 0;
TI = 0;
SBUF = Byte;
while(!TI);
TI = 0;
EA = 1;
}
/*
*
*/
int main(void)
{
//
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
//
PCON&= 0x7F;
TCON = 0x00;
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
ES = 1;
EA = 1;
UART_Byte = 0xFF;
while(1)
{
P1 = UART_Byte;
}
}
void UART_IRQ(void) interrupt 4
{
RI = 0;
UART_Byte= SBUF;
UART_Send_Buf(UART_Byte);
}
// 发送数据7F单片机P1.7LED亮
你这个问题十分含糊。计算机与单片机之间有多种可能的物理链路,所以你需要根据所选用的物理链路来确定如何进行上位机编程。
UART串口。如果单片机侧通过UART经过RS-232转换后连接上位机的串口,那么就是基本的RS-232通讯方式。一般来说,在上位机侧都有较成熟的控件(例如Windows的MsComm控件);如果追求效率则可以自行编写底层接口函数。
USB。一般来说,单片机侧都是USB的从机端,且一般会根据应用情况映射为CDC类、MSC类或HID类。上位机侧调用相应的USB驱动接口即可。
以太网。现在很多单片机直接支持以太网接口,所以对于上位机而言,单片机就是一个普普通通的网络设备,直接按照所需的协议(例如TCP)进行相关编程就行。这部分涉及到网络编程较多,可能需要进行深入学习。
其它。例如红外、蓝牙、Wifi等等,均需要具体情况具体进行分析,在此不再赘述。