в общем выдаёт такую бодягу в ответ: labelOpenSPI.Text = "устройство подключено" labelIntSPI.Text = true labelSpeedSPI.Text = false labelDataSPI.Text = false
Импорт из библиотеки такой
Код:
public class Imports { [DllImport("CH341DLL.dll")] public static extern IntPtr CH341OpenDevice(uint iIndex);
[DllImport("CH341DLL.dll")] public static extern IntPtr CH341CloseDevice(uint iIndex);
/* шIndex // CH341 оборудование, указанное число 0 соответствует первому устройству iParityMode // Режим проверки последовательной передачи данных CH341: NOPARITY / ODDPARITY / EVENPARITY / MARKPARITY / SPACEPARITY iBaudRate // Значение скорости передачи последовательного порта. Может быть любое значение между 50 и 3000000 */ [DllImport("CH341DLL.dll")] public static extern bool CH341SetupSerial(uint iIndex, uint iParityMode, uint iBaudRate);
/* iIndex - номер устройства iMode - байт, который определяет следующее: Bit [7]: - SPI byte bit order: 0 = LSB first, 1 = MSB first Bit [2]: - SPI's I/O lines: 0 = single-input/ single-output (D3=clock / D5=out / D7=in) (default); 1 = double input/ double output: D3 clock / (D5=out D4=in) / (D7=in D6=out) Bit [1:0] - speed: 00=20kHz, 01=100KHz, 10=400KHz, 11=750kHz */ [DllImport("CH341DLL.dll")] public static extern bool CH341SetStream(uint iIndex, uint iMode);
/* ULONG iIndex // CH341 оборудование, указанное число 0 соответствует первому устройству ULONG iChipSelect // Выбор вывода CHIP_SELECT ULONG iLength // Размер буфера в байтах от 0 до 32 ULONG ioBuffer // Буфер передаваемых данных */ [DllImport("CH341DLL.dll")] public static extern bool CH341StreamSPI4(uint iIndex, uint iChipSelect, uint iLength, byte[] ioBuffer);
Может кто подсказать, что я делаю не так?
Добавлено after 2 hours 37 minutes 14 seconds: Нашёл проблему, не установил CS. А конкретно в "labelSpeedSPI.Text = Imports.CH341SetupSerial(0, 0, 100).ToString();" должно быть "labelSpeedSPI.Text = Imports.CH341SetupSerial(0, 0x80, 100).ToString();" Это включает СS для CS0 (0x81 для S1 и 0x82 для S2 соответственно).осталось порулить со скоростью.
Доброго времени суток уважаемые коты. Пытаюсь провести инициализацию SPI в CH347. (нужно установить скорость) В общем делаю так,
Код:
// Структура настройки SPI public struct SPI_CONFIG { public byte iMode; // 0-3: SPI Mode0/1/2/3 public byte iClock; // 0 = 60MHz, 1 = 30MHz, 2 = 15MHz, 3 = 7.5MHz, 4 =3 .75MHz, 5 = 1.875MHz, 6 = 937.5KHz, 7 = 468.75KHz public byte iByteOrder; // 0= LSB, 1= MSB public ushort iSpiWriteReadInterval; // Интерфейс SPI общая команда чтения и записи данных, единица измерения — мкс public byte iSpiOutDefaultData; // SPI печатает данные по умолчанию при считывании данных public ulong iChipSelect; // Выбор чипа, бит7 = 0, управление выбором чипа игнорируется, бит7 = 1, допустимые параметры: бит1/0 равны 00/01, тогда контакты CS1/CS2 выбираются как активный выбор чипа низкого уровня соответственно public byte iCS1Polarity; // Бит 0: выбор микросхемы, управление полярностью CS1, 0 - активный низкий уровень; 1 - активный высокий уровень public byte iCS2Polarity; // Бит 0: выбор микросхемы, управление полярностью CS2, 0 - активный низкий уровень; 1 - активный высокий уровень public ushort iIsAutoDeativeCS; // Следует ли автоматически отменять выбор чипа после завершения операции public ushort iActiveDelay; // Время задержки выполнения операций чтения и записи после установки выбора микросхемы, единица измерения — мкс. public ulong iDelayDeactive; // Время задержки выполнения операций чтения/записи после отмены выбора микросхемы, единица измерения — мкс. } // *****
// Обращение к библиотеке public class Imports { [DllImport("CH347DLL.dll")] public static extern bool CH347SPI_Int(uint iIndex, SPI_CONFIG mSpiCfgS); }
В строке "vai1 = Imports.CH347SPI_Int(0, InSPI);" происходит затык. Пишет: System.EntryPointNotFoundException: "Не удается найти точку входа "CH347SPI_Int" в DLL "CH347DLL.dll"." Может кто подсказать, что не так?
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения