voila ce que j ai avec un FT230XS
0
1
䉅刲㜹ㅕ
䉅刲㜹ㅕ
䉅刲
䉅刲㜹ㅕ
-1
2
probleme lecture Eeprom FT230XS
Re: probleme lecture Eeprom FT230XS
voici ce que j ai dans la fenetere en reponce
0
1
䉅刲㜹ㅕ
䉅刲㜹ㅕ
䉅刲
䉅刲㜹ㅕ
-1
2
0
1
䉅刲㜹ㅕ
䉅刲㜹ㅕ
䉅刲
䉅刲㜹ㅕ
-1
2
Re: probleme lecture Eeprom FT230XS
Les chaînes de caractères sont fournies en ASCII par la librairie FTD2XX.dll alors que PureBasic travaille en Unicode.
Il faut donc faire attention au traitement des chaînes de caractères sinon on obtient des caractères inopportuns, comme vous en avez fait l'expérience.
J'ai testé le programme ci-dessous pour lire les informations de base. Il fonctionne chez moi avec PureBasic 6.21 64-bit, le driver FTDI en version 2.12.28, les puces FT232R et FT232AM.
Il faut donc faire attention au traitement des chaînes de caractères sinon on obtient des caractères inopportuns, comme vous en avez fait l'expérience.
J'ai testé le programme ci-dessous pour lire les informations de base. Il fonctionne chez moi avec PureBasic 6.21 64-bit, le driver FTDI en version 2.12.28, les puces FT232R et FT232AM.
Code : Tout sélectionner
; Test d'utilisation du driver D2XX des appareils FTDI (composants de communication série)
EnableExplicit
; Nom du fichier de librairie DLL fourni par FTDI (même nom en 32 bits et en 64 bits)
#FT_D2XX_DLL = "ftd2xx.dll"
; Status OK renvoyé par les fonctions
#FT_OK = 0
; Liste des appareils
Global Dim FT_DeviceType.s(32) ;{
FT_DeviceType(0) = "FT_DEVICE_232BM"
FT_DeviceType(1) = "FT_DEVICE_232AM"
FT_DeviceType(2) = "FT_DEVICE_100AX"
FT_DeviceType(3) = "FT_DEVICE_UNKNOWN"
FT_DeviceType(4) = "FT_DEVICE_2232C"
FT_DeviceType(5) = "FT_DEVICE_232R"
FT_DeviceType(6) = "FT_DEVICE_2232H"
FT_DeviceType(7) = "FT_DEVICE_4232H"
FT_DeviceType(8) = "FT_DEVICE_232H"
FT_DeviceType(9) = "FT_DEVICE_X_SERIES"
FT_DeviceType(10) = "FT_DEVICE_4222H_0"
FT_DeviceType(11) = "FT_DEVICE_4222H_1_2"
FT_DeviceType(12) = "FT_DEVICE_4222H_3"
FT_DeviceType(13) = "FT_DEVICE_4222_PROG"
FT_DeviceType(14) = "FT_DEVICE_900"
FT_DeviceType(15) = "FT_DEVICE_930"
FT_DeviceType(16) = "FT_DEVICE_UMFTPD3A"
FT_DeviceType(17) = "FT_DEVICE_2233HP"
FT_DeviceType(18) = "FT_DEVICE_4233HP"
FT_DeviceType(19) = "FT_DEVICE_2232HP"
FT_DeviceType(20) = "FT_DEVICE_4232HP"
FT_DeviceType(21) = "FT_DEVICE_233HP"
FT_DeviceType(22) = "FT_DEVICE_232HP"
FT_DeviceType(23) = "FT_DEVICE_2232HA"
FT_DeviceType(24) = "FT_DEVICE_4232HA"
FT_DeviceType(25) = "FT_DEVICE_232RN"
FT_DeviceType(26) = "FT_DEVICE_2233HPN"
FT_DeviceType(27) = "FT_DEVICE_4233HPN"
FT_DeviceType(28) = "FT_DEVICE_2232HPN"
FT_DeviceType(29) = "FT_DEVICE_4232HPN"
FT_DeviceType(30) = "FT_DEVICE_233HPN"
FT_DeviceType(31) = "FT_DEVICE_232HPN"
FT_DeviceType(32) = "FT_DEVICE_BM_A" ;}
; Structure utilisée pour passer les informations de l'appareil depuis la fonction FT_GetDeviceInfoList
Structure FT_Device_List_Info_Node
Flags.l
Type.l
ID.l
LocId.l
SerialNumber.a[16]
Description.a[64]
ftHandle.i
EndStructure
;- Chargement de la librairie
Global FT_Library.i = OpenLibrary(#PB_Any, #FT_D2XX_DLL)
If Not FT_Library
Debug "Echec du chargement de " + #FT_D2XX_DLL
End
EndIf
;- Déclaration des fonctions de la DLL
Prototype.l proto_FT_CreateDeviceInfoList (*NumDevs)
Global FT_CreateDeviceInfoList.proto_FT_CreateDeviceInfoList = GetFunction(FT_Library, "FT_CreateDeviceInfoList")
Prototype proto_FT_GetDeviceInfoList(*Dest.FT_Device_List_Info_Node, *NumDevs)
Global FT_GetDeviceInfoList.proto_FT_GetDeviceInfoList = GetFunction(FT_Library, "FT_GetDeviceInfoList")
Define Status.l ; Valeur de status renvoyée par les appels des fonctions
Define NumDevs.l = 0 ; Nombre d'appareils connectés
Define i
;- Appel de la fonction FT_CreateDeviceInfoList obligatoire avant de récupérer les informations
Status = FT_CreateDeviceInfoList (@NumDevs)
Debug "Nombre d'appareils détectés : " + NumDevs
;- Récupération des infos de chaque appareil
If NumDevs > 0
; Tableau contenant les infos des appareils
Dim DeviceInfo.FT_Device_List_Info_Node(NumDevs-1)
Status = FT_GetDeviceInfoList(@DeviceInfo(), @NumDevs)
If Status = #FT_OK
For i = 0 To NumDevs-1
Debug #CRLF$ + "--- Infos sur l'appareil n°" + Str(i+1) + " ---"
Debug "Type : " + FT_DeviceType(DeviceInfo(i)\Type)
Debug "Numéro de série : " + PeekS(@DeviceInfo(i)\SerialNumber, -1, #PB_Ascii)
Debug "Description : " + PeekS(@DeviceInfo(i)\Description, -1, #PB_Ascii)
Next
EndIf
EndIf