(C#) как отправить данные в двоичном и шестнадцатеричном виде одновременно нажатием кнопки?
Привет,
Я сейчас работаю с EEPROM, посылаю ему данные через последовательный порт, а EEPROM ждет от данных 24 бита, первые 8 бит - EEPROM понимают как адрес, куда писать отправляющие данные, вторые 16 бит - это то, что писать.
Так что я запутался, как это сделать в коде C#.
Обновление:
Хорошо, я использую AVR BASCOM для компиляции на mk, но проблема не в bascom,
для exmaple команда inputbit получит значение от UART и присвоит его переменной
the Inputbin will wait for 3 bytes 1 byte = address (dim as byte) 2 bytes = data (dim as word) = 2 bytes'2 байта, потому что слово = 16 бит
Например я хочу написать "4001" на 25 ячеек памяти в EEPROM.
Data_tx = 4001 Addr = 25
это цифры на binery являются
SB OP address data not used 1 01 011001 0000111110100001 0000000 25 4001 dont care
SB, OP = start bit and op code it equals 101 due to EEPROM datasheet, после них идет мой адрес, который состоит из 6 бит, затем 2 байта данных, которые мы хотим записать.(потому что у меня есть провод 64x16)
Если я отправляю например 1,
serialPort1.Write("\u0005");и запишите адрес в моем компиляторе AVR (im using AVR BASCOM btw), для exmaple в пятой ячейке памяти он запишет 0000 0000 0000 0001 в 5-ю ячейку памяти. Но мне не нужно писать адрес или данные самостоятельно в коде компилятора. Мне нужно отправить его с помощью утилиты Windows forms.
Поэтому мне нужно отправить адрес, который равен 6 битам, и адрес, который равен 16 битам, это то, как я его понимаю
Что я уже пробовал:
private void button1_Click(object sender, EventArgs e) // Here i send a data to MK { serialPort1.Write("\u0001"); // 5 bytes serialPort1.Write(Convert.ToString(0x05)); // 0005 hex }
Ralf Meier
Это то же самое, что и в другом вашем вопросе.
Я бы посоветовал вам улучшить свой вопрос с помощью расширенной информации. Что вы должны написать в SerialPort ? Объясните это на примере ... Я думаю, вы не поняли, что на самом деле нужно написать в порт, чтобы получить ответ ...
JeezyWonder
обновлено, сэр
Ralf Meier
Если я правильно понял, вам нужно отправить 5 байт в ваш Serialport.
Byyte-контент должен быть построен так же, как ваш пример (выше).
Так... Сначала я бы создал ByteArray с требуемым размером.
Теперь запишите в Index=0 значение SB, в Index=1 значение OP, в Index=2 значение вашего адреса, в Index=3 старший байт ваших данных (data / 256), в Index=4 младший байт ваших данных (data или 255) и, наконец, в последний индекс значение 0.
Сейчас пишу этот объект ByteArray в последовательный порт ...