#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
出這樣的錯誤求解答
|