ЛИУС-2
16.Январь.2024 13:16:01
1
Приветствую всех!
Как известно, в STM32 имеется 3 таких порта, но куда ни сунься - везде тычутся в РВ6-РВ7. Причем, в некоторых статьях рассуждают о таких высоких материях, что глаза на лоб… при этом не изображая простейшей схемы.
Короче, нигде так и не нашел ответов на 2 вопроса:
Почем РВ6, РВ8 / РВ7, РВ9 обозначены на всех картинках одинаково как SCL1 / SDA1 ?
Если я хочу сохранить ШИМ-контакты и подключить I2C-дисплейчик к ножкам РВ10 / РВ11, КАК ОБЪЯСНИТЬ ЭТО СКЕТЧУ (программе)???
Благодарю за внимание!
PS Кстати, внутри библиотек про I2C я (TotalCommander) не нашёл буквов “SDA” || “SCL”
b707
16.Январь.2024 13:24:41
2
В F103 - только два
потому что это один и тот же порт, а пины можно использовать либо одну пару, либо другую.
зависит от пакета, в котором вы работаете. Нужно инициализировать обьект Wire2 и потом использовать его в коде вместо Wire.
Кстати, хочу предупредить, что большинство ардуино библиотек могут работать только с первой шиной, для использования второй придется править код.
b707
16.Январь.2024 13:29:45
3
если вы хотите сохранить ШИМ выходы, нелогично использовать PB10 PB11 - это тоже ШИМ
ua6em
16.Январь.2024 14:09:50
4
// Bluepill USB connector on the top, MCU side - Blackpill USB connector on bottom, MCU Side (pins are reversed vertically for Arduino Analog pin correct sequence.
// Left Side
#define PB9 0
#define PB8 1
#define PB7 2
#define PB6 3
#define PB5 4
#define PB4 5
#define PB3 6
#define PA15 7
#define PA12 8 // USB DP
#define PA11 9 // USB DM
#define PA10 10
#define PA9 11
#define PA8 12
#define PB15 13
#define PB14 14
#define PB13 15
#define PB12 16 // LED Blackpill
// Right side
#define PC13 17 // LED Bluepill
#define PC14 18
#define PC15 19
#define PA0 PIN_A0
#define PA1 PIN_A1
#define PA2 PIN_A2
#define PA3 PIN_A3
#define PA4 PIN_A4
#define PA5 PIN_A5
#define PA6 PIN_A6
#define PA7 PIN_A7
#define PB0 PIN_A8
#define PB1 PIN_A9
#define PB10 30
#define PB11 31
// Other
#define PB2 32 // BOOT1
#define PA13 33 // SWDI0
#define PA14 34 // SWCLK
// Alternate pins number
#define PA0_ALT1 (PA0 | ALT1)
#define PA1_ALT1 (PA1 | ALT1)
#define PA2_ALT1 (PA2 | ALT1)
#define PA3_ALT1 (PA3 | ALT1)
#define PA4_ALT1 (PA4 | ALT1)
#define PA5_ALT1 (PA5 | ALT1)
#define PA6_ALT1 (PA6 | ALT1)
#define PA7_ALT1 (PA7 | ALT1)
#define PA8_ALT1 (PA8 | ALT1)
#define PA9_ALT1 (PA9 | ALT1)
#define PA10_ALT1 (PA10 | ALT1)
#define PA11_ALT1 (PA11 | ALT1)
#define PA15_ALT1 (PA15 | ALT1)
#define PB0_ALT1 (PB0 | ALT1)
#define PB0_ALT2 (PB0 | ALT2)
#define PB1_ALT1 (PB1 | ALT1)
#define PB1_ALT2 (PB1 | ALT2)
#define PB3_ALT1 (PB3 | ALT1)
#define PB10_ALT1 (PB10 | ALT1)
#define PB11_ALT1 (PB11 | ALT1)
#define PB13_ALT1 (PB13 | ALT1)
#define PB14_ALT1 (PB14 | ALT1)
#define NUM_DIGITAL_PINS 35
#define NUM_ANALOG_INPUTS 10
// On-board LED pin number
#if defined(ARDUINO_BLUEPILL_F103CB) || defined(ARDUINO_BLUEPILL_F103C8)
#define LED_GREEN PC13
#else
// Default for Blackpill
#define LED_GREEN PB12
#endif
#ifndef LED_BUILTIN
#define LED_BUILTIN LED_GREEN
#endif
// On-board user button
#ifndef USER_BTN
#define USER_BTN PNUM_NOT_DEFINED
#endif
// SPI definitions
#ifndef PIN_SPI_SS
#define PIN_SPI_SS PA4
#endif
#ifndef PIN_SPI_MOSI
#define PIN_SPI_MOSI PA7
#endif
#ifndef PIN_SPI_MISO
#define PIN_SPI_MISO PA6
#endif
#ifndef PIN_SPI_SCK
#define PIN_SPI_SCK PA5
#endif
// I2C definitions
#ifndef PIN_WIRE_SDA
#define PIN_WIRE_SDA PB7
#endif
#ifndef PIN_WIRE_SCL
#define PIN_WIRE_SCL PB6
#endif
// Timer Definitions
// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin
#ifndef TIMER_TONE
#define TIMER_TONE TIM3
#endif
#ifndef TIMER_SERVO
#define TIMER_SERVO TIM2
#endif
// UART Definitions
#ifndef SERIAL_UART_INSTANCE
#define SERIAL_UART_INSTANCE 1
#endif
// Default pin used for generic 'Serial' instance
// Mandatory for Firmata
#ifndef PIN_SERIAL_RX
#define PIN_SERIAL_RX PA10
#endif
#ifndef PIN_SERIAL_TX
#define PIN_SERIAL_TX PA9
#endif
/*----------------------------------------------------------------------------
* Arduino objects - C++ only
*----------------------------------------------------------------------------*/
#ifdef __cplusplus
// These serial port names are intended to allow libraries and architecture-neutral
// sketches to automatically default to the correct port name for a particular type
// of use. For example, a GPS module would normally connect to SERIAL_PORT_HARDWARE_OPEN,
// the first hardware serial port whose RX/TX pins are not dedicated to another use.
//
// SERIAL_PORT_MONITOR Port which normally prints to the Arduino Serial Monitor
//
// SERIAL_PORT_USBVIRTUAL Port which is USB virtual serial
//
// SERIAL_PORT_LINUXBRIDGE Port which connects to a Linux system via Bridge library
//
// SERIAL_PORT_HARDWARE Hardware serial port, physical RX & TX pins.
//
// SERIAL_PORT_HARDWARE_OPEN Hardware serial ports which are open for use. Their RX & TX
// pins are NOT connected to anything by default.
#ifndef SERIAL_PORT_MONITOR
#define SERIAL_PORT_MONITOR Serial
#endif
#ifndef SERIAL_PORT_HARDWARE
#define SERIAL_PORT_HARDWARE Serial1
#endif
#endif
b707
16.Январь.2024 14:16:15
5
Это не от блюпила, у блюпила нет Таймеров 6 и 7
ua6em
16.Январь.2024 14:20:49
6
да, прокосячил, делал сразу аж три дела, ПОПРАВИЛ
прописаны только эти порты под I2C
// I2C definitions
#ifndef PIN_WIRE_SDA
#define PIN_WIRE_SDA PB7
#endif
#ifndef PIN_WIRE_SCL
#define PIN_WIRE_SCL PB6
#endif
// Timer Definitions
// Use TIM6/TIM7 when possible as servo and tone don't need GPIO output pin
#ifndef TIMER_TONE
#define TIMER_TONE TIM3
#endif
#ifndef TIMER_SERVO
#define TIMER_SERVO TIM2
#endif
// UART Definitions
#ifndef SERIAL_UART_INSTANCE
#define SERIAL_UART_INSTANCE 1
#endif
// Default pin used for generic 'Serial' instance
// Mandatory for Firmata
#ifndef PIN_SERIAL_RX
#define PIN_SERIAL_RX PA10
#endif
#ifndef PIN_SERIAL_TX
#define PIN_SERIAL_TX PA9
#endi
ЛИУС-2
16.Январь.2024 14:36:36
8
Они только толерантны к +5V
ЛИУС-2
16.Январь.2024 14:38:34
10
Мне стыдно за мою серость, но с чем это едят?..
b707
16.Январь.2024 14:39:35
11
если у вас пин в режиме выхода - какая нафик разница, толерантен он к 5в или нет?
И вообще, нетолерантность относится только к режиму аналогового входа.
ua6em
16.Январь.2024 14:39:45
12
это определение твоих портов в IDE для блюпила
b707
16.Январь.2024 14:41:15
13
ua6em:
из аддона конечно
берешь пример с новичков, как сказать так чтоб на самом деле ничего не сказать?
Какого файла из какого аддона, ссылку, имя файла…
ЛИУС-2
16.Январь.2024 14:42:19
14
Картинку СТМ с легендой посмотрите… и аналоговые входы зелёненькие.
ua6em
16.Январь.2024 14:45:47
15
ну ёшкин пистолет, куда ставил поддержку плат STM там и лежит, у меня тут:
D:\ARDUINO\arduino-1.8.19\portable\packages\STMicroelectronics\hardware\stm32\2.7.1\variants\STM32F1xx
ЛИУС-2
16.Январь.2024 14:48:17
16
А можно для чайника (меня) на конкретном примере?
Дисплейчик “маде ин Шанхай” с 4-мя ножками и текст:
{byte four=2*2 ;
// инициируем всю эту канитель и выводим
(“two x two equel”, four) ;// ибо кириллики не ожидаю
b707
16.Январь.2024 14:48:57
17
А то что аддонов больше одного, ты не догадываешься?
покажите. У меня все красненькие
ua6em
16.Январь.2024 14:51:16
18
в 1.8.19 будет видно только один, а вот в 2.х.х да, можно несколько поставить, но лежать они будут по другому пути
b707
16.Январь.2024 15:03:02
20
Вы какое “зелененькое” имеете в виду?
Толерантность пина к 5в на вашей схеме обозначается не цветом, а закрашенной точкой, а нетолерантность - пустой.
Я вам специально выделил, куда смотреть - все аналоговые пины не толерантны.