Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Вс окт 22, 2023 16:59:03
Дык а настройках терминалки выбрано hex. Установить ASCII - и будет сыпать текстом.
Вс окт 22, 2023 19:13:40
проверку того, что данные отправлены в нужной последовательности?
Ну, в самом простом варианте : буфер данных, представляющий собой массив, отправляется согласно индексу...
- Код:
if (UART1_SR_TXE==1)
{
if (i == array_length)
{
// передача завершена
}
else
{
UART1_DR = res[i++];
}
}
осталось разобраться, как сторона приёма поймёт, что передача завершена.
Вс окт 22, 2023 20:08:08
попробуйте писать код в Arduino IDE
А в чем разница? Почему вы думаете, что там будет проще писать?
В самом начале, я стоял перед выбором среды программирования. Рассматривал Arduino IDE. Установил ее на компьютер, и пытался что-то написать. Честно сказать мне не очень понравилось.
В первую очередь, наверное, потому что она оказалась очень тяжелой для моего компьютера(долго запускается, долго компилирует). А сейчас уже побаиваюсь на что-то другое переходить(боюсь запутаться).
Дык а настройках терминалки выбрано hex. Установить ASCII - и будет сыпать текстом.
Боюсь не будет. Несколько постов выше об этом писал.
осталось разобраться, как сторона приёма поймёт, что передача завершена.
А это тоже нужно учитывать?...
Да, с передачей данных никогда не работал...
Вс окт 22, 2023 20:26:20
ну а откуда приёмнику знать, сколько и что передаст и передал передатчик? Даже если строго договорились, что два байта. Например, приёмник получил байт, потом ещё байт. Где гарантия, что передатчик отправил весь буфер из двух байтов, а не сначала первый байт, потом что-то не заладилось, и он снова отправил первый байт?
Вс окт 22, 2023 20:28:12
Потому что там писать программный код ... легко. Сделали все макроси, функции и т.д. для использования неспециалистами. Близко к "человеческому мышлению". Просто используйте. (Правда, создается неправильное представление, что все дано
).
Напр. задача: напрежение ADC pin 0 -> в Serial - 1 строка кода. (код не пробовал, могут быть неточности).
Спойлер
- Код:
#include "Arduino.h"
#include "Serial.h"
// RX (D15) -> TX
// TX (D14) -> RX
// A0 - analog input
void setup(void) {
Serial_begin(9600);
}
void loop (void) {
Serial_print_u(analogRead(0));
Serial_println();
delay(200);
}
Установите Arduino IDE v1.8.19. Со ArduinoIDE v2.x.x не работаю по этой причине: медленно загружается.
Вт окт 24, 2023 00:06:31
Установите Arduino IDE v1.8.19.
Да, 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.
This example code is in the public domain.
https://www.arduino.cc/en/Tutorial/BuiltInExamples/AnalogReadSerial
*/
// 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
}
Спойлер
Весь лог компилятора:
C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\User\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\User\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\User\Documents\Arduino\libraries -fqbn=sduino:stm8:stm8sblue -vid-pid=1A86_5523 -ide-version=10819 -build-path C:\Windows\TEMP\arduino_build_795011 -warnings=all -build-cache C:\Windows\TEMP\arduino_cache_888067 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.STM8Tools.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.STM8Tools-2019.02.05.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.sdcc.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -prefs=runtime.tools.sdcc-build.10738.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -verbose C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -hardware C:\Users\User\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -tools C:\Users\User\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\User\Documents\Arduino\libraries -fqbn=sduino:stm8:stm8sblue -vid-pid=1A86_5523 -ide-version=10819 -build-path C:\Windows\TEMP\arduino_build_795011 -warnings=all -build-cache C:\Windows\TEMP\arduino_cache_888067 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.STM8Tools.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.STM8Tools-2019.02.05.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\STM8Tools\2019.02.05 -prefs=runtime.tools.sdcc.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -prefs=runtime.tools.sdcc-build.10738.path=C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738 -verbose C:\Windows\TEMP\arduino_modified_sketch_744557\AnalogReadSerial.ino
Using board 'stm8sblue' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2
Using core 'sduino' from platform in folder: C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2
Detecting libraries used...
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/win/busybox" ash "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/wrapper/sdcc.sh" "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/bin/sdcc" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp" nul re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\cores\\sduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\variants\\standard" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/include"
Generating function prototypes...
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/win/busybox" ash "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/wrapper/sdcc.sh" "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/bin/sdcc" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp" "C:\\Windows\\TEMP\\arduino_build_795011\\preproc\\ctags_target_for_gcc_minus_e.cpp" re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\cores\\sduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\variants\\standard" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/include"
C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp C:\Windows\TEMP\arduino_build_795011\preproc\ctags_target_for_gcc_minus_e.cpp re12 -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include
Mark re12:C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -E -MC -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp -o C:\Windows\TEMP\arduino_build_795011\preproc\ctags_target_for_gcc_minus_e.cpp
cpp gefunden
"C:\\Program Files (x86)\\Arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Windows\\TEMP\\arduino_build_795011\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Компиляция скетча...
"C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/win/busybox" ash "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\STM8Tools\\2019.02.05/wrapper/sdcc.sh" "C:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/bin/sdcc" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp" "C:\\Windows\\TEMP\\arduino_build_795011\\sketch\\AnalogReadSerial.ino.cpp.o" re2 -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -Wp-Wall -V -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\cores\\sduino" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2\\variants\\standard" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\hardware\\stm8\\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" "-IC:\\Users\\User\\AppData\\Local\\Arduino15\\packages\\sduino\\tools\\sdcc\\build.10738/include"
C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.o re2 -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -Wp-Wall -V -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include
Mark re2:C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin/sdcc -MMD -c -Ddouble=float -DUSE_STDINT -D__PROG_TYPES_COMPAT__ -Wp-Wall -V -mstm8 -DSTM8S103 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_STM8S_BLUE -DARDUINO_ARCH_STM8 -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc -IC:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp -o C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.o
cpp gefunden
+ C:\Users\User\AppData\Local\ARDUIN~1\packages\sduino\tools\sdcc\BUILD~1.107/bin\sdcpp.exe -nostdinc -Wall -std=c11 -D"double=float" -D"USE_STDINT" -D"__PROG_TYPES_COMPAT__" -Wall -D"STM8S103" -D"F_CPU=16000000L" -D"ARDUINO=10819" -D"ARDUINO_STM8S_BLUE" -D"ARDUINO_ARCH_STM8" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\cores\sduino" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2\variants\standard" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\hardware\stm8\0.5.0-pre2/STM8S_StdPeriph_Driver/inc" -I"C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/include" -obj-ext=.rel -MMD C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.d -MT C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.cpp.o -D__SDCC_STACK_AUTO -D__SDCC_CHAR_UNSIGNED -D__SDCC_MODEL_MEDIUM -D__SDCC_INT_LONG_REENT -D__SDCC_FLOAT_REENT -D__SDCC=3_8_3 -D__SDCC_VERSION_MAJOR=3 -D__SDCC_VERSION_MINOR=8 -D__SDCC_VERSION_PATCH=3 -D__SDCC_REVISION=10738 -D__SDCC_stm8 -D__STDC_NO_COMPLEX__=1 -D__STDC_NO_THREADS__=1 -D__STDC_NO_ATOMICS__=1 -D__STDC_NO_VLA__=1 -D__STDC_ISO_10646__=201409L -D__STDC_UTF_16__=1 -D__STDC_UTF_32__=1 -isystem "C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin\..\include\stm8" -isystem "C:\Users\User\AppData\Local\Arduino15\packages\sduino\tools\sdcc\build.10738/bin\..\include" "C:\Windows\TEMP\arduino_build_795011\sketch\AnalogReadSerial.ino.c"
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 '.->'
exit status 1
Ошибка компиляции для платы STM8S103F3 Breakout Board.
Вт окт 24, 2023 03:46:46
я бы забыл всю эту ардуино.
Поставить IAR и учиться изначально хорошему.
Вт окт 24, 2023 08:53:09
Тестировал на реальном устройстве. Изменил только 0 на PIN_A0. Код работает.
- Код:
#include "Arduino.h"
#include "Serial.h"
// RX (D15) -> TX
// TX (D14) -> RX
// A0 - analog input
void setup(void) {
Serial_begin(9600);
}
void loop (void) {
Serial_print_u(analogRead(PIN_A0));
Serial_println();
delay(200);
}
Добавьте аппаратную поддержку Arduino IDE в STM8 из
предыдущих сообщений. Перепишите код, скомпилируйте. Запишите полученный hex файл программатором. Получаете вольтметр на А0 (PC4) к UART. С внешним адаптером RX/TX на CH340G к D14/D15. Мне потребовалось ~10 минут.
- Вложения
-
- sketch_oct24a.zip
- (3.98 KiB) Скачиваний: 32
Чт окт 26, 2023 21:21:40
Добавьте аппаратную поддержку Arduino IDE в STM8
Да вроде все сделал, как сказано в инструкции, но почему-то не работает. Причем, пример Blink компилируется заливается в контроллер и работает в нем.
Ну да ладно. Думаю, что не буду распыляться и менять коней на переправе. Если начал писать в IAR, то в нем и продолжу. С предыдущими трудностями справился и с будущими, надеюсь справлюсь. В конце концов, мир не без добрых людей, поэтому надеюсь, что тут мне помогут.
Чт окт 26, 2023 21:59:59
IAR - это правильный выбор.
Пт окт 27, 2023 08:06:00
Меня за выбор IAR для STM32 материли на этом форуме
Говорили - оставь iar профессионалам, а сам иди в кубики играть.
Вт ноя 21, 2023 00:44:59
Перестал работать компорт на электронной нагрузке EBC-A20 фирмы ZKE TECH. Реализован на STM8S 105K4T6C выводы 46 , 47 UART.
Эти выводы выведены наружу через резисторы 100 Ом вместе с общим проводом (минус питания). Далее эти три провода подключены через PROLIFIC-PL2303 (USB to Serial Bridge Controller) на USB для соединения с компютером.
ЦЕЛЬ-ВОССТАНОВИТЬ соединение.
АЛГОРИТМ-надеюсь что существует, подскажите!! Я=ЧАЙНИК.
Предположения : вышел из строя внутренний UART микросхемы. Надо ПЕРЕНЕСТИ код в исправную пустую микросхему. Такое ВОЗМОЖНО? Если ДА, то скажите что для этого надо. Чем считать и как записать? Не защищена ли микросхема от копирования? И если защищена , то можно ли взять у производителя прошивку ( обновление) и записать его в новую микруху?
Ср ноя 22, 2023 20:17:31
Перестал работать компорт на электронной нагрузке EBC-A20 фирмы ZKE TECH. Реализован на STM8S 105K4T6C выводы 46 , 47 UART.
Эти выводы выведены наружу через резисторы 100 Ом вместе с общим проводом (минус питания). Далее эти три провода подключены через PROLIFIC-PL2303 (USB to Serial Bridge Controller) на USB для соединения с компютером.
ЦЕЛЬ-ВОССТАНОВИТЬ соединение.
Что значит "перестал работать"? Как это определяете?
Выкинуть PL2303, заменить на другую. Лучше - на что-то из FT232xx или CP21xx. Так как PL2303 - гумно.
Ср ноя 22, 2023 20:20:07
PL2303 не гумно, но давно снято с производства, существующие сегодня в продаже - китайская подделка. Из китайцев проще взять WCH340 - больше шансов на оригинал, FT232xx или CP21xx могут оказаться левыми.
Ср ноя 22, 2023 20:38:36
Из китайцев проще взять WCH340 - больше шансов на оригинал.
Они вроде максимум 115200?
Конечно у автора STM8S и поэтому - маловероятно, что выше 115200, но вдруг?...
PS: Не люблю CH340. В мой 3D-принтер китайцы впендюрили CH340G (видимо с целью удешевления). Теперь отладочный лог из него на нормальной скорости не выплюнешь.
Ср ноя 22, 2023 20:50:37
не помню про скорость... а я как раз CH340G купил
что-то не рискнул безкварцевые брать
Чт ноя 23, 2023 03:17:25
Такое ВОЗМОЖНО? Если ДА, то скажите что для этого надо. Чем считать и как записать? Не защищена ли микросхема от копирования? И если защищена , то можно ли взять у производителя прошивку ( обновление) и записать его в новую микруху?
Думаю, скачать прошивку с МК у вас не получиться, но можете попробовать. Для этого нужно установить программу ST Visual Programmer и купить программатор. Скачать программу можно на сайте производителя МК.
Вот тут можете посмотреть описание.
Если все же у вас не получиться скачать прошивку с МК, то просите прошивку у производителя устройства. Может быть он вам ее даст.
Ср дек 20, 2023 19:36:16
Всем привет.
Хотел завести на STM8S103 SPI в режиме opendrain. Пока SPI выключен порт на котором MOSI так себя и ведет. Как только отправляю один байт по SPI, сразу переключается в пушпул и в нем остается пока SPI не выключу. Даже пробовал притянуть к нулю резистором, на 14мА четкая лог1.
У меня нечто подобное было на клоне STM32, он честно назывался CS32, только на USARTe. Я вот думаю, что у меня STM8 тоже клон. Две одинаковые платки одинаково себя ведут. Еще где то были чипы, можно попробовать перепаять.
Может у кого подобное было? Или может я чего не то делаю?
Ср дек 20, 2023 21:51:09
а разве SPI должен работать с открытым коллектором? Не путаете с I2C? SPI не сможет обеспечить высокую скорость без пуш-пулл
Ср дек 20, 2023 22:10:46
С 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 вроде как тоже ничего нет.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.