串口助手下发命令~单片机回传不同的数据

发布者:seanxnie最新更新时间:2015-04-30 来源: 51hei关键字:串口助手  下发命令  单片机回传 手机看文章 扫描二维码
随时随地手机看文章
/**********串口助手下发命令,单片机回传不同的数据**************/

/**
*时间:2014年3月15日 07:32:22
*作者:寒竹子
**/

#include

typedef unsigned int uint;
typedef unsigned char uchar;

bit cmdAddrived = 0;//收到下发命令的标志
uchar cmd = 0;//上位机下发的命令
uchar cnt;//发送字节的个数
uchar * sendStr = "";//单片机发送的数据指针

//预定义待发送的数据
uchar * pstr1 = "Welcome to MCU! ";
uchar * pstr2 = "www*Kingst*odg ";
uchar * pstr3 = "Welcome to STM-32! ";
uchar * pstr4 = "www*chuxue123*cdm ";

void UART_Config(uint baud);
void UART_sendByte(uchar dat);
void UART_sendString(uchar * pstr);
uchar UART_recieved();
void recievedByComputer();

void main()
{
UART_Config(9600);

while (1)
{
recievedByComputer();
}
}

//串口波特率配置
void UART_Config(uint baud)
{
SCON |= 0x50;
/*
SM0 = 0;
SM1 = 1;
REN = 1;
TI = 0;
RI = 0;
*/
TMOD &= 0x0F;//清零T1控制位
TMOD |= 0x20;//T1方式2,八位自动重装
TH1 = 256-(11059200/12/32/baud);
TL1 = TH1;
TR1 = 1;
}

//send Byte
void UART_sendByte(uchar dat)
{
SBUF = dat;
while (!TI);
TI = 0;
REN = 1;//允许接收
}

//send String
void UART_sendString(uchar * pstr)
{
while (*pstr != '')
{
UART_sendByte(*pstr++);
}
}

//recieve
uchar UART_recieved()
{
uchar dat = 0;
if (RI) //接收到数据
{
dat = SBUF;
RI = 0;
REN = 0;//发送数据,禁止接收
}

return (dat);
}

//接收命令并处理
void recievedByComputer()
{
cmd = UART_recieved();

switch (cmd)
{
case 1:
{
UART_sendString(pstr1);
break;
}
case 2:
{
UART_sendString(pstr2);
break;
}
case 3:
{
UART_sendString(pstr3);
break;
}
case 4:
{
UART_sendString(pstr4);
break;
}
default:
break;
}
}

关键字:串口助手  下发命令  单片机回传 引用地址:串口助手下发命令~单片机回传不同的数据

上一篇:说一下SN(松翰单片机)的低功耗工作
下一篇:测试漏电保护线圈

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved