|
#include "reg52.h"
#include "uart.h"
void LED_OFF(u8 char_num) //關(guān)閉LED
{
switch(char_num)//對(duì)象碼
{
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)//對(duì)象碼
{
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;
}
}
/*指令說(shuō)明:
*發(fā)送 001 打開LED (001表示:分類碼='0',功能碼='0',對(duì)象碼='1' ,分類碼='0'表示LED控制類,功能碼'0'表示關(guān)閉LED,對(duì)象碼'1'表示第1個(gè)LED)
*發(fā)送 011 打開LED (011表示:分類碼='0',功能碼='1',對(duì)象碼='1' ,分類碼='0'表示LED控制類,功能碼'1'表示打開LED,對(duì)象碼'1'表示第1個(gè)LED)
*無(wú)結(jié)束符,適用于固定長(zhǎng)度的指令,本工程設(shè)計(jì)為固定長(zhǎng)度為2個(gè)字符的指令
*第一個(gè)字符表示類別碼,即是什么分類
*第二個(gè)字符代表功能碼,即是什么功能
*第三個(gè)字符代表對(duì)象碼,即是什么對(duì)象
*可以修改長(zhǎng)度來(lái)增減指令長(zhǎng)度,獲得更多嵌套層數(shù)功能控制。
*/
void main(void) //主函數(shù)掃描方式
{
UART_Configure(9600);//配置9600波特率(默認(rèn)無(wú)奇偶校驗(yàn),1位停止位,8位數(shù)據(jù)位)
while(1)
{
if(Uart.RX_COUNT>=3) //判斷串口是否接收到3個(gè)以上數(shù)據(jù),修改此處的數(shù)據(jù)可改變指令長(zhǎng)度
{
switch(Uart.RX_BUFF[0]) //類別碼
{
case '0': //LED控制類
switch(Uart.RX_BUFF[1]) //功能碼
{
case '0': //功能碼0 :關(guān)閉LED
LED_OFF(Uart.RX_BUFF[2]);//將對(duì)象碼輸入函數(shù)中
break;
case '1': //功能碼1 :打開LED
LED_ON(Uart.RX_BUFF[2]);//將對(duì)象碼輸入函數(shù)中
break;
}
break;
case '1': //其他類
break;
case '2': //其他類
break;
}
//清除數(shù)據(jù)必須在處理代碼后面
Uart.RX_COUNT=0; //緩存計(jì)數(shù)清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
出這樣的錯(cuò)誤求解答
|
|