#include "reg52.h"
#include "uart.h"
void LED_OFF(u8 char_num) //关闭LED
{
switch(char_num)//对象码
{
case '1':
P1|=1<<0;
UART_SendStr("LED1_OFF \r\n");
break;
case '2':
P1|=1<<1;
UART_SendStr("LED2_OFF \r\n");
break;
case '3':
P1|=1<<2;
UART_SendStr("LED3_OFF \r\n");
break;
case '4':
P1|=1<<3;
UART_SendStr("LED4_OFF \r\n");
break;
case '5':
P1|=1<<4;
UART_SendStr("LED5_OFF \r\n");
break;
case '6':
P1|=1<<5;
UART_SendStr("LED6_OFF \r\n");
break;
case '7':
P1|=1<<6;
UART_SendStr("LED7_OFF \r\n");
break;
case '8':
P1|=1<<7;
UART_SendStr("LED8_OFF \r\n");
break;
}
}
void LED_ON(u8 char_num) //打开LED
{
switch(char_num)//对象码
{
case '1':
P1&=~(1<<0);
UART_SendStr("LED1_ON \r\n");
break;
case '2':
P1&=~(1<<1);
UART_SendStr("LED2_ON \r\n");
break;
case '3':
P1&=~(1<<2);
UART_SendStr("LED3_ON \r\n");
break;
case '4':
P1&=~(1<<3);
UART_SendStr("LED4_ON \r\n");
break;
case '5':
P1&=~(1<<4);
UART_SendStr("LED5_ON \r\n");
break;
case '6':
P1&=~(1<<5);
UART_SendStr("LED6_ON \r\n");
break;
case '7':
P1&=~(1<<6);
UART_SendStr("LED7_ON \r\n");
break;
case '8':
P1&=~(1<<7);
UART_SendStr("LED8_ON \r\n");
break;
}
}
/*指令说明:
*发送 001 打开LED (001表示:分类码='0',功能码='0',对象码='1' ,分类码='0'表示LED控制类,功能码'0'表示关闭LED,对象码'1'表示第1个LED)
*发送 011 打开LED (011表示:分类码='0',功能码='1',对象码='1' ,分类码='0'表示LED控制类,功能码'1'表示打开LED,对象码'1'表示第1个LED)
*无结束符,适用于固定长度的指令,本工程设计为固定长度为2个字符的指令
*第一个字符表示类别码,即是什么分类
*第二个字符代表功能码,即是什么功能
*第三个字符代表对象码,即是什么对象
*可以修改长度来增减指令长度,获得更多嵌套层数功能控制。
*/
void main(void) //主函数扫描方式
{
UART_Configure(9600);//配置9600波特率(默认无奇偶校验,1位停止位,8位数据位)
while(1)
{
if(Uart.RX_COUNT>=3) //判断串口是否接收到3个以上数据,修改此处的数据可改变指令长度
{
switch(Uart.RX_BUFF[0]) //类别码
{
case '0': //LED控制类
switch(Uart.RX_BUFF[1]) //功能码
{
case '0': //功能码0 :关闭LED
LED_OFF(Uart.RX_BUFF[2]);//将对象码输入函数中
break;
case '1': //功能码1 :打开LED
LED_ON(Uart.RX_BUFF[2]);//将对象码输入函数中
break;
}
break;
case '1': //其他类
break;
case '2': //其他类
break;
}
//清除数据必须在处理代码后面
Uart.RX_COUNT=0; //缓存计数清0
UART_RX_BUFF_Clear();//清除接收缓存
}
}
}
Build target 'Target 1'
compiling 串口通信控制led亮灭.c...
..\..\..\..\串口通信控制led亮灭.c(3): warning C318: can't open file 'uart.h'
..\..\..\..\串口通信控制LED亮灭.C(6): error C141: syntax error near 'char_num', expected ')'
..\..\..\..\串口通信控制LED亮灭.C(8): error C202: 'char_num': undefined identifier
Target not created
出这样的错误求解答
|