ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
26 июня
242768 Топик полностью
Гудвин, волшебник (10.03.2011 17:40, просмотров: 151) ответил oleg110592 на 2 Гудвин а можно простой пример, если можно на Pelles C работы с USB host(или ткните где рыть носом). Стандартный пример с кнопочкой - проверил работает. Хочу FT232RL подключить, это возможно?
Скачать с FTDI драйвер, установить. (естественно, usb должен быть включен в режим хоста) В системе появится COM порт. Через него и работать стандартно, как с файлом (заменить в тексте непонятное "RFID" на "COM" :) :  #define SizeBuf 128 #define PATTERN 'A' #define GAP 0x10 extern HWND sav_handle; HANDLE hComRFID; BOOL Stp; int GetRFIDData(CHAR *buf) { DWORD dw; if(hComRFID!=INVALID_HANDLE_VALUE) { ReadFile(hComRFID,buf,SizeBuf,&dw,NULL); } return dw; } int ParseRFID(void) { CHAR Data[SizeBuf]; CHAR *S; S=Data; unsigned int i=0; int nb=0; while(!Stp) { ZeroMemory(Data,SizeBuf); nb=GetRFIDData(Data); for (i=0;i<nb;i++) // èäåì ïî ñòðîêå { if (S[i]==PATTERN) { SendMessage(sav_handle, WM_USER, 0, 0); Sleep(1000); PurgeComm(hComRFID, PURGE_RXCLEAR); break; }; } } return 0; } HANDLE OpenRFID(void) { WCHAR CP[10]; DCB dcb; COMMTIMEOUTS CommTimeOuts; swprintf(CP,L"COM3:"); HANDLE hPort = CreateFile( CP, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0,//FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL); if(!GetCommState(hPort,&dcb)) { CloseHandle(hPort); return 0; } dcb.DCBlength=sizeof(dcb); dcb.BaudRate=9600; SetCommState(hPort,&dcb); CommTimeOuts.ReadIntervalTimeout= 10; CommTimeOuts.ReadTotalTimeoutMultiplier = 1; // çíà÷åíèé ýòèõ òàéì – àóòîâ âïîëíå õâàòàåò äëÿ óâåðåííîãî ïðèåìà // äàæå íà ñêîðîñòè 110 áîä CommTimeOuts.ReadTotalTimeoutConstant = 50; // èñïîëüçóåòñÿ â äàííîì ñëó÷àå êàê âðåìÿ îæèäàíèÿ ïîñûëêè CommTimeOuts.WriteTotalTimeoutMultiplier = 0; CommTimeOuts.WriteTotalTimeoutConstant = 0; SetCommTimeouts(hPort, &CommTimeOuts); PurgeComm(hPort, PURGE_RXCLEAR); return hPort; } int InitRFID(void) { hComRFID = OpenRFID(); //открываем порт Stp = 0; DWORD dwThreadId; CreateThread(NULL,1024,(LPTHREAD_START_ROUTINE)ParseRFID,NULL,0,&dwThreadId); return hComCOM!=INVALID_HANDLE_VALUE; } int CloseRFID(void) { Stp = 1; if(hComRFID!=INVALID_HANDLE_VALUE) CloseHandle(hComRFID); return 0; }