А в чем разница? Почему вы думаете, что там будет проще писать? В самом начале, я стоял перед выбором среды программирования. Рассматривал Arduino IDE. Установил ее на компьютер, и пытался что-то написать. Честно сказать мне не очень понравилось. В первую очередь, наверное, потому что она оказалась очень тяжелой для моего компьютера(долго запускается, долго компилирует). А сейчас уже побаиваюсь на что-то другое переходить(боюсь запутаться).
ну а откуда приёмнику знать, сколько и что передаст и передал передатчик? Даже если строго договорились, что два байта. Например, приёмник получил байт, потом ещё байт. Где гарантия, что передатчик отправил весь буфер из двух байтов, а не сначала первый байт, потом что-то не заладилось, и он снова отправил первый байт?
Потому что там писать программный код ... легко. Сделали все макроси, функции и т.д. для использования неспециалистами. Близко к "человеческому мышлению". Просто используйте. (Правда, создается неправильное представление, что все дано ).
Напр. задача: напрежение ADC pin 0 -> в Serial - 1 строка кода. (код не пробовал, могут быть неточности). Спойлер
Да, v1.8.19 работает шустрее v2.x.x. И таки да, писать там кажется попроще(почитал документацию). Но с STM8 там могут возникнуть проблемы, из-за того что не все библиотеки адаптированы, насколько я понял. Кстати, с UART у меня и там возникли проблемы. Стандартный пример AnalogReadSerial не скомпилировался. Компилятор выдал ошибку. C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino:16: error 25: Structure/Union expected left of '.->' C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino:24: error 25: Structure/Union expected left of '.->'
Код:
/* AnalogReadSerial
Reads an analog input on pin 0, prints the result to the Serial Monitor. Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu). Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
// the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); }
// the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A3); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability }
Добавьте аппаратную поддержку Arduino IDE в STM8 из предыдущих сообщений. Перепишите код, скомпилируйте. Запишите полученный hex файл программатором. Получаете вольтметр на А0 (PC4) к UART. С внешним адаптером RX/TX на CH340G к D14/D15. Мне потребовалось ~10 минут.
Да вроде все сделал, как сказано в инструкции, но почему-то не работает. Причем, пример Blink компилируется заливается в контроллер и работает в нем. Ну да ладно. Думаю, что не буду распыляться и менять коней на переправе. Если начал писать в IAR, то в нем и продолжу. С предыдущими трудностями справился и с будущими, надеюсь справлюсь. В конце концов, мир не без добрых людей, поэтому надеюсь, что тут мне помогут.
Перестал работать компорт на электронной нагрузке EBC-A20 фирмы ZKE TECH. Реализован на STM8S 105K4T6C выводы 46 , 47 UART. Эти выводы выведены наружу через резисторы 100 Ом вместе с общим проводом (минус питания). Далее эти три провода подключены через PROLIFIC-PL2303 (USB to Serial Bridge Controller) на USB для соединения с компютером. ЦЕЛЬ-ВОССТАНОВИТЬ соединение. АЛГОРИТМ-надеюсь что существует, подскажите!! Я=ЧАЙНИК. Предположения : вышел из строя внутренний UART микросхемы. Надо ПЕРЕНЕСТИ код в исправную пустую микросхему. Такое ВОЗМОЖНО? Если ДА, то скажите что для этого надо. Чем считать и как записать? Не защищена ли микросхема от копирования? И если защищена , то можно ли взять у производителя прошивку ( обновление) и записать его в новую микруху?
Перестал работать компорт на электронной нагрузке EBC-A20 фирмы ZKE TECH. Реализован на STM8S 105K4T6C выводы 46 , 47 UART. Эти выводы выведены наружу через резисторы 100 Ом вместе с общим проводом (минус питания). Далее эти три провода подключены через PROLIFIC-PL2303 (USB to Serial Bridge Controller) на USB для соединения с компютером. ЦЕЛЬ-ВОССТАНОВИТЬ соединение.
Что значит "перестал работать"? Как это определяете? Выкинуть PL2303, заменить на другую. Лучше - на что-то из FT232xx или CP21xx. Так как PL2303 - гумно.
PL2303 не гумно, но давно снято с производства, существующие сегодня в продаже - китайская подделка. Из китайцев проще взять WCH340 - больше шансов на оригинал, FT232xx или CP21xx могут оказаться левыми.
Из китайцев проще взять WCH340 - больше шансов на оригинал.
Они вроде максимум 115200? Конечно у автора STM8S и поэтому - маловероятно, что выше 115200, но вдруг?...
PS: Не люблю CH340. В мой 3D-принтер китайцы впендюрили CH340G (видимо с целью удешевления). Теперь отладочный лог из него на нормальной скорости не выплюнешь.
Такое ВОЗМОЖНО? Если ДА, то скажите что для этого надо. Чем считать и как записать? Не защищена ли микросхема от копирования? И если защищена , то можно ли взять у производителя прошивку ( обновление) и записать его в новую микруху?
Думаю, скачать прошивку с МК у вас не получиться, но можете попробовать. Для этого нужно установить программу ST Visual Programmer и купить программатор. Скачать программу можно на сайте производителя МК. Вот тут можете посмотреть описание. Если все же у вас не получиться скачать прошивку с МК, то просите прошивку у производителя устройства. Может быть он вам ее даст.
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
Всем привет. Хотел завести на STM8S103 SPI в режиме opendrain. Пока SPI выключен порт на котором MOSI так себя и ведет. Как только отправляю один байт по SPI, сразу переключается в пушпул и в нем остается пока SPI не выключу. Даже пробовал притянуть к нулю резистором, на 14мА четкая лог1.
У меня нечто подобное было на клоне STM32, он честно назывался CS32, только на USARTe. Я вот думаю, что у меня STM8 тоже клон. Две одинаковые платки одинаково себя ведут. Еще где то были чипы, можно попробовать перепаять. Может у кого подобное было? Или может я чего не то делаю?
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2708 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
С I2C не путаю. Скорость мне не нужна. Воткнул пока транзистор, видимо останется. Из RM016
Цитата:
11.8 Output mode details 11.8.1 Alternate function output Alternate function outputs provide a direct path from a peripheral to an output or to an I/O pad, taking precedence over the port bit in the data output latch register (Px_ODR) and forcing the Px_DDR corresponding bit to 1. An alternate function output can be push-pull or pseudo-open drain depending on the peripheral and Control register 1 (Px_CR1) and slope can be controlled depending on the Control register 2 (Px_CR2) values. Examples: SPI output pins must be set-up as push-pull, fast slope for optimal operation.
Я перевел это так, переферия может работать в любом режиме, SPI должен быть настроен в пушпул для оптимальной работы. Но не написано что работает только в нем. Может я неправильно понял. В Errata вроде как тоже ничего нет.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения