Соответствие ног (портов) в скетче и на плате! STM32 совсем не понятно. Как работает??
- Войдите на сайт для отправки комментариев
Чт, 29/09/2022 - 18:58
Уважаемые! Учусь использовать СТМки. Подключил дисплей ST7565 только после того как слепо повторил чей то опубликованный проект. В этом проекте ноги дисплея подключались и заработали со странной нумерацией. Плата F401CCU6
//ноги дисплея сверху вниз,слева . Справа - ноги STM32 // pin 1 - 4 // pin 2 - 3 // pin 3 - 2 // pin 4 - 1 // pin 5 - 0 U8G2_ST7565_ERC12864_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 1, /* data=*/ 0, /* cs=*/ 4, /* dc=*/ 2, /* reset=*/ 3);
В скетче написано ноги 0,1,2,3,4,5.
В документации на плату это ноги РА0 -РА5 - если порты, и если ноги процессора то 10,11,12-15.
Если в скетче написать РА0 -РА5 то компелируется и не работает. С энкодером тоже самое
// ноги энкоднра #define CLK 7 #define DT 6
Это же порт РА6, РА7, но работает только в таком виде (6,7).
Хочу подключить другие устройства к другим портам. Как узнать эту мудрую нумерацию??? Что я не понимаю??
1. На stm32 принято обозначать ноги как PA0...PA15, PB0...PB15... Цифры как-то употреблять не принято, тем более, что соответствие мнемоник цифрам может быть разное для разных кристаллов.
2. Если что-то, что заведомо должно работать, не работает, проверьте, правильно ли Вы выбрали тип контроллера. (ну и не мешает еще раз проверить всю схему).
3. Ну и на всякий случай: номера ножек корпуса никак не соотносятся с нумерацией этих ножек в скетче.
В STM ядре ардуино есть файл pins_arduino.h в котором есть формула пересчёта нумерации пинов STM в нотацию ардуино. А можно посмотреть файл с описанием, например https://github.com/stm32duino/Arduino_Core_STM32/blob/main/variants/STM32F4xx/F401V(B-C-D-E)T/variant_generic.h Там вокруг есть папки с вариантами раскладок для других процессоров STM. Что интересно - нет обозначений типа D3 для цифровых ног, только 3. Для аналоговых A3 есть.
Спасибо! nik182 .
Пол ночи вчера искал соответствие ног. Сейчас пазл сошелся. Не понятно почему на просторах инета не удаётся найти.
Все проще, это ж Cortex ядро
32 разрядные порты gpio, pa0 это 0 порт, pa31 это 31 порт, pb0 это 32,pb31 это 63 и так далее по алфавиту.
Ядро и GPIO никак не связаны.
Каждый разработчик делает периферию так, как ему удобнее. В частности, в stm32 используются в основном не 32-, а 16-разрядные порты. Т.е. PA0-PA15, PB0-PB15 и т.д. А вот в SAM3 (Arduino Due) - там как раз 32-разрядные внешние порты.
Парни! Кто ни будь внешний RTC подключал к СТМ32 в Ардуино?? На Библиотеку ругается.
Хочу на дачу управление теплым полом, надо тариф второй оследить. У встроенного как то мудро все ,выходные опять же надо вылавливать. И что то полно жалоб на часовой кварц на платах.
Про ноги! все сошлось. НО!? примеры мигания !!!! везде пишется PC13 , а не нога 31.
И ведь работает. Это меня наверно в ступор вводило с этими номерами
везде пишется PC13 , а не нога 31.
И ведь работает. Это меня наверно в ступор вводило с этими номерами
если тебя это удивляет - видимо тебе стоит еще раз изучить, что такое макросы в Си.