zigbee串口發(fā)收
0.png (40.27 KB, 下載次數(shù): 48)
下載附件
2018-6-4 01:55 上傳
單片機源程序如下:
- /************發(fā)送數(shù)據(jù)格式:命令+數(shù)據(jù)長度+ID+傳感器數(shù)據(jù)+校驗*****************/
- #include <reg52.h>
- #include "uart.h" // 串行通信函數(shù)頭文件
- #define errorState 0x01//異常命令
- #define open_LED 0x02//開燈命令
- #define close_LED 0x03//關燈命令
- sbit key1=P2^0;
- sbit key2=P2^1;
- sbit key3=P2^7;
- typedef struct zigbee //整個數(shù)據(jù)結(jié)構(gòu)為14字節(jié)
- {
- uint8_t Order;//命令類型
- uint8_t ValidDataLen;//有效數(shù)據(jù)長度
- uint8_t wdata[10];//數(shù)據(jù)
- uint8_t crc;//校驗和
- }zigbeeCmd_t;
- zigbeeCmd_t zigbeeCmd;
- /*
- 函數(shù)用途:數(shù)據(jù)發(fā)送函數(shù)
- 輸入數(shù)據(jù):
- 輸出數(shù)據(jù):0 成功 1失敗
- */
- uint8_t zigbeeSendCmd(void)
- {
- uint8_t i,ax=8,ay=9;
-
- zigbeeCmd.Order = errorState;
- zigbeeCmd.ValidDataLen = 2;
- zigbeeCmd.wdata[0] = ax;
- zigbeeCmd.wdata[1] = ay;
-
- //打包命令頭
- U1SendData(zigbeeCmd.Order);//1
- U1SendData(zigbeeCmd.ValidDataLen);//2
-
- //打包有效數(shù)據(jù)
- zigbeeCmd.crc = 0;
- for(i=0;i<10;i++)
- {
- U1SendData(zigbeeCmd.wdata[i]);//8,9,0,0,0,0,0,0,0,0
- zigbeeCmd.crc += zigbeeCmd.wdata[i];
- }
- //CRC校驗
- U1SendData(zigbeeCmd.crc);//11
-
- return 0;
- }
- uint8_t OPEN_LED(void)
- {
- uint8_t i,ax=8,ay=9;
- zigbeeCmd.Order = open_LED;
- zigbeeCmd.ValidDataLen = 2;
- zigbeeCmd.wdata[0] = 1;
- zigbeeCmd.wdata[1] = 2;
-
- //打包命令頭
- U1SendData(zigbeeCmd.Order);//2
- U1SendData(zigbeeCmd.ValidDataLen);//2
-
- //打包有效數(shù)據(jù)
- zigbeeCmd.crc = 0;
- for(i=0;i<10;i++)
- {
- U1SendData(zigbeeCmd.wdata[i]);//1,2,0,0,0,0,0,0,0,0
- zigbeeCmd.crc += zigbeeCmd.wdata[i];
- }
- //CRC校驗
- U1SendData(zigbeeCmd.crc);//0
-
- return 0;
- }
- uint8_t CLOSE_LED(void)
- {
- uint8_t i;
- zigbeeCmd.Order = close_LED;
- zigbeeCmd.ValidDataLen = 2;
- zigbeeCmd.wdata[0] = 3;
- zigbeeCmd.wdata[1] = 4;
-
- //打包命令頭
- U1SendData(zigbeeCmd.Order);//1
- U1SendData(zigbeeCmd.ValidDataLen);//2
-
- //打包有效數(shù)據(jù)
- zigbeeCmd.crc = 0;
- for(i=0;i<10;i++)
- {
- U1SendData(zigbeeCmd.wdata[i]);//3,4,0,0,0,0,0,0,0,0
- zigbeeCmd.crc += zigbeeCmd.wdata[i];
- }
- //CRC校驗
- U1SendData(zigbeeCmd.crc);//
- return 0;
- }
- void main() // 主函數(shù)
- {
- UartInit();
- while(1)
- {
- if(key1==0)
- {
- DelayMS(5);
- if(key1==0)
- {
- while(!key1);
- zigbeeSendCmd();
- }
- }
- if(key2==0)
- {
- DelayMS(5);
- if(key2==0)
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
zigbee串口發(fā)收.rar
(92.54 KB, 下載次數(shù): 59)
2018-6-3 15:13 上傳
點擊文件名下載附件
鑷繁緙栧啓鎴愬姛鐨 下載積分: 黑幣 -5
|