ivan58, физический уровень и протокол передачи байта исполняется в аппаратной части модуля.
програмного в нем лишь настройки.
а вот все более сложное уже в программе драйвера протокола связи.
ты лучше б написал что тебе надобно в итоге..
переписывать тебе лично кучу документации, которой навалом в тырнетиках, уже влом.
ivan58, нет. протокол не зависит от страны. не понимаю откуда вы это взяли, но посоветую четко и основательно изучить документацию по применяемым протоколам и большинство вопросов исчезнут.
стандарты отличаются, ибо создавались в разное время, и с разными тех.заданиями.
UART к примеру не включает в себя протокол организации передачи данных. он просто описывает как передать байтики на физическом уровне.
I2C или USB уже описывает не только физический уровень, но логику протокола передачи данных. адресацию, формат пакета данных...
чтобы работать с множеством устройств по RS485/RS232/UART поверх их физического уровня накладывают протокол организации связи, к примеру, MODBUS
и т.д.
ivan58, интерфейс SPI от UART отличается тем что SPI синхронный.
т.е. на аппаратном уровне присутствует отдельная линия по которой передается сигнал тактирования SCLK. линии MOSI MISO можно теоретически приравнять к линиям RxD TxD uart.
SPI требует минимум три линии SCLK MISO MOSI (плюс необходимое количество линий CS для выбора подчиненного устройства если их больше одного)
UART минимум требует две линии RxD TxD.
SPI и UART достаточно близки меж собой. поэтому в процессоре обычно стоит универсальный модуль USART Универсальный Синхронно-Асинхронный приемопередатчик, реализующий оба интерфейса.
I2C отличается от двух предыдущих что вместо двух односторонних линий передачи данных имеется одна двунаправленная линия данных SDA. плюс к ней линия тактирования SCL.
плюс имеется более сложная логика взаимодействия между подключенными к шине устройствами, обязательные адреса устройств. при этом нет главного и подчиненных, все устройства подключенные к шине имеют равный приоритет, любой занять шину для передачи данных.
Vitsliputsli, Си и его предшественники и создавались как абстракция от процессорно привязанного ассемблера (ассемблер кстати тоже абстрагируется от инструкций процессора :) ). при этом логика С близка к инструкциям процессора, все/большинство слов на С можно напрямую перевести в инструкции и окружение процессора.
С++ сильно дальше по дорожке отвязки от железа. да и делался по совершенно другому замыслу.
потоки, классы, абстракции, виртуальные функции, шаблоны и многое другое уже не позволяют все слова языка С++ напрямую преобразовать в инструкции процессора.
это всего лишь мое мнение, взгляд на разницу С и С++
AlexVWill, опять же абсолютно согласен. только не жду наступления чего-либо и просто держу все свои файлы при себе на подконтрольном мне оборудовании :)
если ты чего не видишь, то оставлю это право полностью тебе.
в стм32 сколь помню не возможно снять прошивку с камня.
для доступа к прошивке необходим представить 256 байтный ключ из указателей прерываний.
т.е. слить прошивку из камня или войти в режим дебагинга не возможно.
т.е. клонирования готовой железяки не возможно.
мож такого хватит
https://rclone.org/commands/rclone_mount/
поколение виндовс потребителей, уверенных что без гуя нет
ни хжизни ?? :)