b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

单片机串口发送程序_单片机串口接收程序_avr单片机串口接收程序(4)

电脑杂谈  发布时间:2017-02-23 06:00:54  来源:网络整理

* 名称 : unsigned char cmd_panduan(unsigned char *cmd_buf,unsigned char *cmd,unsigned char len)

* 功能 : 在指定长度内比较两个字符串是否一致

* 输入 : 指向字符串的指针cmd_buf,cmd 要比较的长度

* 输出 : 是:输出1,否:输出0

********************************************************************/

unsigned char cmd_panduan(unsigned char *cmd_buf,unsigned char *cmd,unsigned char len)

{

unsigned char i,j;

for(j=0;j<len;j++)

{

i=(cmd_buf[j+1]==cmd[j]);

if(i)

{

i=1;

}

if(i==0)

{

i=0;

break;

}

}

j=0;

return i;

}

/**************************************************************************

- 功能描述:51单片机的串口中断处理函数

- 隶属模块:STC51串口操作

- 函数属性:外部,使用户使用(在此中断函数中常用来处理从串口收到的数据)

- 参数说明:无

- 返回说明:无

- 注:振南的很多产品,都是配合“超级终端”来进行演示的,在“超级终端”中

敲入的命令就是从计算机的串口发出,由单片机从串口接收,接收到的串口

数据就在此中断函数中进行处理,完成命令接收及处理、命令解析等工作。单片机串口接收程序

**************************************************************************/

void com_ser() interrupt 4//串口中断处理函数,收到数据后产生中断,在这里处理

{

unsigned char data len=0; //命令字符串长度

if(RI)//如果数据已经接收完,即RI=1

{

RI=0; //对RI进行清零

cmd_buf[counter] = SBUF;//把收到的数据赋值给变量(注意接收的写法)

}

if(cmd_buf[counter]==0x0d) //如果串口输入回车,那么命令结束

{

cmd_buf[counter]=\0;

len=counter-1;

counter = 0;

flag=1;

}

else

counter = counter+1;

if(flag) //处理接收到的命令

{

if(cmd_panduan(cmd_buf,"led0_open",len))

{

led0=0;

UART_Send_Str("led0_open OK!\r");

}

if(cmd_panduan(cmd_buf,"led0_close",len))

{

led0=1;

UART_Send_Str("led0_close OK!\r");

}

if(cmd_panduan(cmd_buf,"led1_open",len))

{

led1=0;

UART_Send_Str("led1_open OK!\r");

}

if(cmd_panduan(cmd_buf,"led1_close",len))


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33992-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 无名鬼
      无名鬼

      已经翻了

    • 丁松霞
      丁松霞

      南海那么大航线那么多美国为什么专走12海里这条路

    每日福利
    热点图片
    拼命载入中...