zigbee串口發收
0.png (40.27 KB, 下載次數: 48)
下載附件
2018-6-4 01:55 上傳
單片機源程序如下:
- /************發送數據格式:命令+數據長度+ID+傳感器數據+校驗*****************/
- #include <reg52.h>
- #include "uart.h" // 串行通信函數頭文件
- #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 //整個數據結構為14字節
- {
- uint8_t Order;//命令類型
- uint8_t ValidDataLen;//有效數據長度
- uint8_t wdata[10];//數據
- uint8_t crc;//校驗和
- }zigbeeCmd_t;
- zigbeeCmd_t zigbeeCmd;
- /*
- 函數用途:數據發送函數
- 輸入數據:
- 輸出數據: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
-
- //打包有效數據
- 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
-
- //打包有效數據
- 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
-
- //打包有效數據
- 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() // 主函數
- {
- 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串口發收.rar
(92.54 KB, 下載次數: 59)
2018-6-3 15:13 上傳
點擊文件名下載附件
鑷繁緙栧啓鎴愬姛鐨 下載積分: 黑幣 -5
|