聚豐項目 > 無人商店(提交)
利用RFID技術,識別商品標簽,對商品進行購買授權,包括商品入庫,商品信息修改,商品購買授權等步驟,實現最為簡單的無人商店。
leo星
分享leo星
團隊成員
梁星 硬件工程師
利用wifi模塊進行聯網,主讀頭RD915M、開發板RS232通訊分別與硬件控制板連接,把讀到的數據傳回開發板,開發板通過wifi把數據傳給mysql服務器,服務器上對商品信息進行核對,結果下發到開發板,開發板控制硬件控制板進行開門,商品授權等動作。
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#define PRESET_VALUE 0xFFFF
#define POLYNOMIAL 0x8408
unsigned int uiCrc16Cal(unsigned char const * pucY, unsigned char ucX)
{
unsigned char ucI,ucJ;
unsigned short int uiCrcValue = PRESET_VALUE;//short int 是16位長的用來保存CRC16返回值的
for(ucI = 0; ucI < ucX; ucI++)
{
uiCrcValue = uiCrcValue ^ *(pucY + ucI);//異或運算相同為0不同1
for(ucJ = 0; ucJ < 8; ucJ++)
{
if(uiCrcValue & 0x0001)
{
uiCrcValue = (uiCrcValue >> 1) ^ POLYNOMIAL;
}
else
{
uiCrcValue = (uiCrcValue >> 1);
}
}
}
return uiCrcValue;
}
int main(void)
{
u8 t;
unsigned short int crc16;
unsigned char lsb,msb;
//unsigned char buf_ReadEPC[5] = {0x04,0x00,0x01,0x00,0x00};//讀取標簽的EPC號 5
//unsigned char buf_readerget[]={0x04,0x00,0x21,0x00,0x00};//讀取讀寫器信息 5
//unsigned char buf_getTID[]={0x06,0x00,0x01,0x00,0x06,0xFA,0x34};//查詢TID 7
//unsigned char buf_readresver[13]={0x0C,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x3E,0xA4};//讀取保留區數據 13
unsigned char buf_writeresver[21]={0x14,0x00,0x03,0x04,0x00,0x00,0x00,0x11,0x22,0x33,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9C,0xB5};//寫入保留區數據 21
//unsigned char buf_WriteEPC[22]={0x15,0x00,0x04,0x06,0x00,0x00,0x00,0x00,0xE2,0x80,0x68,0x10,0x20,0x00,0x00,0x01,0x0D,0xD1,0x5E,0xF4,0x05,0x93};//寫入EPC號 22
delay_init(); //延時函數初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優先級分組2
uart_init(9600); //串口初始化為9600
LED_Init(); //初始化與LED連接的硬件接口
crc16=uiCrc16Cal(buf_writeresver,19);
lsb=crc16 & 0x00ff;
msb=crc16 >> 8;
buf_writeresver[19] = lsb;
buf_writeresver[20] = msb;
while(1)
{
delay_ms(2000);
for(t=0;t<21;t++)
{
USART1->DR=buf_writeresver[t];
while((USART1->SR&0X40)==0);//等待發送結束
}
}
}
與讀頭RD915通訊需要進行CRC16校驗
東西太多了,提供鏈接大家自己下載看吧 鏈接:http://pan.baidu.com/s/1micL6VA 密碼:8ckh