Перейти к содержанию

maksimdag0

Members
  • Постов

    69
  • Зарегистрирован

  • Посещение

Весь контент maksimdag0

  1. Доброго вечера, форумчане! Подскажите, я не могу разобраться с вопросом, связанным со Scatter-файлом, а именно как разместить какой либо код(функцию или переменную, например) по определенному адресу в Keil . Не хватает знаний. Сразу скажу, ответ на вопрос искал на просторах интернета долго, пишу сюда так как недоперло до конца. Есть Scatter-файл со следующим содержанием: LR_IROM1 0x08000000 0x00080000 { ; load region size_region ER_IROM1 0x08000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00020000 { ; RW data .ANY (+RW +ZI) } } погуглив, я узнал, что: LR_IROM1 – это регион(область) загрузки, ER_IROM1 – это регион(область) выполнения. Я понял так, что область загрузки это область памяти куда будет загружен нами указанный код , в данном примере код будет загружен в область, которая начинается с адреса 0x08000000 размером 0x00080000. 1) Ну что же такое регион(область) выполнения(ER_IROM1 0x08000000 0x00080000 )? Второй вопрос: 2) Если я дал правильное определение что такое "LR_IROM1", то почему в теле LR_IROM1 прописано RW_IRAM1 0x20000000 0x00020000, ведь эти адреса( 0x20000000 0x00020000) никак не входят в область 0x08000000 0x00080000 ?
  2. Разобрался. Вот рабочий код: /* Enable GPIOE clock */ SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOEEN); //Устанавливаем режим выводов PE3 и PE4 GPIOE->PUPDR = 0x00000140;//настраиваем подтяжку pull_up GPIOE->MODER = 0x00000000;//настраиваем pins на вход //Настраиваем EXTI для ножек PE3 и PE4 SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN); SYSCFG->EXTICR[0] = 0x00004000; SYSCFG->EXTICR[1] = 0x00000004; //Clear Rising Falling edge configuration EXTI->RTSR = 0x00000000;//по фронту EXTI->FTSR = 0x00000018;//по спаду EXTI->EMR = 0x00000000; EXTI->IMR = 0x00000018; /* Enable interrupt in NVIC */ NVIC_SetPriority(EXTI3_IRQn, 14); NVIC_SetPriority(EXTI4_IRQn, 14); NVIC_EnableIRQ(EXTI3_IRQn); NVIC_EnableIRQ(EXTI4_IRQn);
  3. Да мне важно хотя бы правильно настроить инициализацию. Если в обработчике не удалять флаг прерывания, то он хотя бы один раз должен туда зайти. А он не заходит, ни рзау
  4. Здесь указаны разные: SYSCFG_EXTICR1_EXTI3_PE SYSCFG_EXTICR2_EXTI3_PE Не понятно элемент массива выбирать. Я перепробовал все элементы массива, все равно не работает
  5. Всем привет. История токова - хочу настроить 2 кнопки на внешние пререрывания (PE3 и PE4), библиотекой CMSIS(важно). Код настроки представлен внизу. В итоге прерывания не работаю. Подскажите пожалуйста, что же я не так делаю? Микрокнтроллер: STM32F407VET6 Все Документы(PDF): 1) chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf 2)chrome-extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.rlocman.ru/i/File/2015/01/17/DM00037051.pd int main(void) { SET_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOEEN); CLEAR_BIT(GPIOE->MODER, GPIO_MODER_MODE3_0 | GPIO_MODER_MODE3_1); CLEAR_BIT(GPIOE->MODER, GPIO_MODER_MODE4_0 | GPIO_MODER_MODE4_1); SET_BIT(RCC->APB2ENR, RCC_APB2ENR_SYSCFGEN); SET_BIT(SYSCFG->EXTICR[2], SYSCFG_EXTICR1_EXTI3_PE); SET_BIT(SYSCFG->EXTICR[2], SYSCFG_EXTICR2_EXTI4_PE); SET_BIT(EXTI->IMR, EXTI_IMR_MR3); SET_BIT(EXTI->IMR, EXTI_IMR_MR4); SET_BIT(EXTI->FTSR, EXTI_FTSR_TR3); SET_BIT(EXTI->FTSR, EXTI_FTSR_TR4); SET_BIT(EXTI->PR, EXTI_PR_PR3); SET_BIT(EXTI->PR, EXTI_PR_PR4); NVIC_SetPriority(EXTI3_IRQn, 15); NVIC_SetPriority(EXTI4_IRQn, 15); NVIC_EnableIRQ(EXTI3_IRQn); NVIC_EnableIRQ(EXTI4_IRQn); while(1) { } } //Обработчики прерывания void EXTI3_IRQHandler(void) { uint32_t ver1; ver1 = 0; } void EXTI4_IRQHandler(void) { uint32_t ver2; ver2 = 0; }
  6. Тогда возникает вопрос, зачем делать платы защиты(без балансира) если в конечном итоге они их не защитят полностью? И на рынке плат защит(без балансировки) множество. Если есть уже BMSки(с балансировкой), которые не уступают по цене платам защиты, зачем их тогда еще делают?
  7. ахах, это мой косяк, я имел в виду поДелка Мешает то, что на зарядном устройстве, которые я заказываю (они выгодные) напряжения не больше 12V (по факту) Ну хорошо, если использовать плату защиты(без балансировки) плохая ли это практика? Будет ли это как-то негативно влиять на АКб?
  8. Всем доброго дня! Нужна помощь знающих в электронике. в частности по аккумулятором. Вопросы. возможно, простые, но не могу найти на них ответа. история такая - хочу собрать аккумулятор(литий-ионный) из 3х ячеек соединенных последовательно, для своей подделки. Ток нагрузки 1,5А(Max). Естественно хочу взять подходящую BMS, которая самая дешева, на примета вот эта: https://aliexpress.ru/item/1005001621886312.html?spm=a2g2w.favourites.mywishlist.2.207d4aa6iHERVk Меня мучает два вопроса: 1) Если напряжение зарядного устройства(ЗУ), поданное на вход BMS будет меньше 12,6V, то BMS будет работать, и как это может негативно отразиться на процесс заряда (сейчас нет рядом bms, что бы проверить по факту, буду заказывать на али) 2) Если в BMS, допустим, не предусмотрен режим балансира, то как это может негативно отразиться на процесс заряда? Сок службы аккумуляторов снизится? Вообще можно так делать?
  9. maksimdag0

    Breakpoints в keil

    Доброго дня! Подскажите пожалуйста, в настройках @Current Breakpoints" есть поднастройки "Access" (см. фото). Какие функции они выполняют, для чего они нужны? Гуглил, но так и не дошло до меня. Я так понял - если, к примеру, я хочу чтобы остановилась программа в том случаи если в переменную z (см фото) запишется значение 5, в этом случаи в поднастройках "Access" мы ставим галочку "WRITE". Но остальные настройки "READ, READWRITE, Size, Bytes, Objects" для чего нужны, в каких случаях их использовать? Вкладку HELP конечно же читал, но я не понял.
  10. Добрый вечер! наконец-то появилась свободная минутка! Спасибо всем за ответы, до меня дошло!
  11. Не совсем понял. А вообще данные от usb до СOM разьема на переходнике будут как-то преобразоваться?
  12. Наверное я недостаточно детально пояснил свой вопрос, мне нужно данные с МК передать в компьютер через преобразователь UART-USB. Я не понимаю как реализовывать это со стороны USB. Нужно писать уже программку на самом компьютере?
  13. Правильно ли я понял - раньше у компьютеров(ЭВМ) были только COM порты (RS-232), далее со временем появились USB и тд, но некоторое ПО работает все так же только с RS-232, и для этого мы используем виртуальный COMпорт, который, так сказать, преобразует протокол USB в RS-232 (образно говоря)?
  14. maksimdag0

    передача данных UART-USB

    Всем привет! Господа, у меня уже каша в голове после гугла. Подскажите пожалуйста, есть преобразователь UART-USB для того что бы передавать данные от МК в компьютер. Вопрос в следующем как usb подключить к ПК, нужны драйвера спеуиальные? Как принимать данные через USB? Как использоватьэти данные в компьютере? Обьсните пожалуйста я не вижу картину в целом.
  15. Дорого времени суток! Надеюсь я ту тему выбрал. Господа, прошу сильно не пинать. После прогулок по просторам интернета у меня просто в голове каша. Я обьясню как я понял, что такое COM порт итд, а вы меня пожалуйста разьесните, правильно ли я думаю или нет, ибо у меня просто каша в голове!!! 1) Слово "порт" это обобщенное слово, и оно относится ко всем портам, то есть USB, HDML, SATA, RJ-45, Разъем TRS 3,5 мм и т.д., все это порты, правильно я понимаю? 2)COM порт - это именно определенный порт "RS-232" или это тоже как обобщенное слово, которое означает подключение к компьютеру какого-то порта? 3) Что такое виртуальный порт, или виртуальный COM порт? Пожалуйста, если это возможно, обьяните на пальцах
  16. В итоге проблема не решилась. На свалку это г*****. Заказал 401, сейчас идут, у них цена почти такая же а возможности побольше, но самое главное надеюсь что они буду работать.
  17. Добрый вечер! Сделал, теперь вылезает другая ошибка, но я б не сказал, что она другая, просто немного по другому описывается проблема в окошке состояния (тоже выделил красным прямоугольником) Тогда как обьяснить, что они не прошиваются, это подделка? STMF103C8T6 не может иметь 256kb - согласен, тогда что за гавно я взял, никто не может обьянить в том числе и, ведь в ST-link утилите прошивается это зараза и все работает кака часики, я туда готовый проект через утилиту прошивал все работало
  18. К сожалению там не похожа на мою проблему
  19. Добрый вечер! Я еще не бросил руки, пытаюсь решить. Начал делать что вы посоветовали, но почему-то у меня нет файла: "com.st.stm32cube.common.mx_5.6.0.202002181639"
  20. В смысле? Что вы этим хотите сказать?
  21. а вы cubeide через vpn скачивали? Я думаю может это как то может повлиять
  22. Прошилась в CubIDE? Вот ссылка на документ word, где я описал все досконально: https://disk.yandex.ru/i/-bTJeWabcyBcUQ
  23. Всем привет. У меня проблема, заказал 8 штук stm-ок (STM32F103C8T6) все они не прошиваются( а на другом, точно такой же STMки все шьется, её я покупал года три назад ). С этой проблемой я уже борюсь неделю, что только не пробовал, и тут выяснилось, что в утилите ST-LINK когда я конектю новые stm, то он определяется как "256kb High-Density" а в stm-ки, которая прошиваются без проблем определяется как "128kb Medium-Density". Я думаю что проблема в этом, но я не понимаю, разве есть микроконтроллеры STM32F103C8T6 на 256kb? Как мне тогда настроиться CubIDE что бы она проживал и микроконтроллеры на 256? Маркировки двух stm и настройки их в ST LINK прикрепил во вложении
×
×
  • Создать...