Serg1
16.Сентябрь.2023 22:53:53
1
Добрый день! Решил попробовать работать с STM32. В общем все нормально загрузилось и установилось по описаниям в инете. Но по умолчанию в скетче blink стоит нога PB1, при том что на контроллере светодиод на ноге PC13. При этом с PB1 скетч компилируется и загружается и работает (проверял мультиметром PB1), но если меняю в коде на PC13 - ошибка компиляции:
/var/folders/88/vzby92092n582qfcrn4b001h0000gp/T/arduino_modified_sketch_671900/Blink.ino: In function ‘void setup()’:
Blink:23:11: error: ‘PC13’ was not declared in this scope
pinMode(PC13, OUTPUT);
^
Может кто сталкивался? Подскажите что делаю не так?
Спасибо!
ua6em
17.Сентябрь.2023 02:17:45
2
посмотреть в аддоне как именно ваш PC13 задерларирован
вот к примеру F103C8
*----------------------------------------------------------------------------
* STM32 pins number
*----------------------------------------------------------------------------*/
#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 PA8 8
#define PA9 9
#define PA10 10
#define PA11 11
#define PA12 12
#define PA13 13
#define PA14 14
#define PA15 15
#define PB0 PIN_A8
#define PB1 PIN_A9
#define PB2 18
#define PB3 19
#define PB4 20
#define PB5 21
#define PB6 22
#define PB7 23
#define PB8 24
#define PB9 25
#define PB10 26
#define PB11 27
#define PB12 28
#define PB13 29
#define PB14 30
#define PB15 31
#define PC13 32
#define PC14 33
#define PC15 34
#define PD0 35
#define PD1 36
// Alternate pins number
#define PA0_ALT1 (PA0 | ALT1)
#define PA1_ALT1 (PA1 | ALT1)
#define PA2_ALT1 (PA2 | ALT1)
#define PA2_ALT2 (PA2 | ALT2)
#define PA3_ALT1 (PA3 | ALT1)
#define PA3_ALT2 (PA3 | ALT2)
#define PA6_ALT1 (PA6 | ALT1)
#define PA7_ALT1 (PA7 | ALT1)
#define PA7_ALT2 (PA7 | ALT2)
#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 PB6_ALT1 (PB6 | ALT1)
#define PB7_ALT1 (PB7 | ALT1)
#define PB8_ALT1 (PB8 | ALT1)
#define PB9_ALT1 (PB9 | ALT1)
#define PB10_ALT1 (PB10 | ALT1)
#define PB11_ALT1 (PB11 | ALT1)
#define PB13_ALT1 (PB13 | ALT1)
#define PB14_ALT1 (PB14 | ALT1)
#define PB15_ALT1 (PB15 | ALT1)
#define PB15_ALT2 (PB15 | ALT2)
#define NUM_DIGITAL_PINS 37
#define NUM_ANALOG_INPUTS 10
// On-board LED pin number
#ifndef LED_BUILTIN
#define LED_BUILTIN PNUM_NOT_DEFINED
#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_SS1
#define PIN_SPI_SS1 PA15
#endif
#ifndef PIN_SPI_SS2
#define PIN_SPI_SS2 PNUM_NOT_DEFINED
#endif
#ifndef PIN_SPI_SS3
#define PIN_SPI_SS3 PNUM_NOT_DEFINED
#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 TIM6
#endif
#ifndef TIMER_SERVO
#define TIMER_SERVO TIM7
#endif
// UART Definitions
#ifndef SERIAL_UART_INSTANCE
#define SERIAL_UART_INSTANCE 2
#endif
// Default pin used for generic 'Serial' instance
// Mandatory for Firmata
#ifndef PIN_SERIAL_RX
#define PIN_SERIAL_RX PA3
#endif
#ifndef PIN_SERIAL_TX
#define PIN_SERIAL_TX PA2
#endif
// Extra HAL modules
#if !defined(HAL_DAC_MODULE_DISABLED)
#define HAL_DAC_MODULE_ENABLED
#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 Serial
#endif
#endif
Serg1:
PC13 - ошибка компиляции
Могу предположить, что писать надо на “эРэС”, а “ПиСи”.
andriano:
Могу предположить,
А я могу предположить, что надо выкладывать код.
Serg1
17.Сентябрь.2023 11:13:21
5
Добрый день!
Да, вы в точку попали. Правда я покопался в файлах с pin definition в текущем пакете и обнаружил что там совсем урезанный маппинг. В общем, не стал возиться, поставил пакет поддержки STM32 с другого гита, но при этом пришлось ST LINK переустановить и все заработало!
Спасибо за подсказку!
Там ещё бывает Вкл- Low, а Выкл- High. Смотря какая STMка у Вас, не указали. В “просто блинке” не заметно, в сложном, типа “S.O.S”- уже перевёртышь.
Serg1
19.Сентябрь.2023 12:11:41
7
Да, спасибо, в курсе этого. Вопрос в том что при компиляции ошибки уже выскакивали, до мигания дело не доходило…
b707
19.Сентябрь.2023 12:14:14
8
что убрали и что поставили?
b707
19.Сентябрь.2023 22:13:42
12
@Serg1
не верю.
Чтобы у Кларка пины не были указаны?
Может вы какую-то экзотическую версию контроллера выбирали?
Serg1
20.Сентябрь.2023 13:00:30
13
Вообще все примитивно, STM32F103C8T6. Сам удивляюсь, может криво встала, ХЗ.
b707
20.Сентябрь.2023 13:08:03
14
В аддоне Кларка “стопудово” пин PC13 есть.