Добрый день. Совсем недавно решил изучить STM32. Раньше имел дело только с AVR. Есть у меня проект контроллера на SIM800C для атмеги328. Решил портировать его на stm32. В проекте используется 2 usart, один для общения с sim800c, второй для вывода отладочной инфы в терминал компьютера. Есть проблема. В программе делаю инит двух usart, затем передаю одну строку через usart2. Она приходит в терминал на компьютере(правда почему-то первая передача без первого символа, все остальные передачи строк передаются полностью), затем передаю другую строку через usart1, но она почему-то опять приходит в терминал компа, хотя usart1 сидит на других пинах и к ним ничего не подключено. Работаю в Keil 5 с платкой BluePill. Для передачи в комп использую адаптер на cp2102, пробовал и через переделанный китайский st-link2 с поддержкой VCP.
Sim800 пока вообще не подключен, я писал что к пинам usart1 ничего не подключено. По плате usartы между собой не звонятся. В программе ремапы не делал.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Я конечно попробую, но что это даст? Я проверял и с подключенным sim800, всё равно данные с пинов usart1 идут в терминал компьютера. Такое ощущение что внутри МК данные перенаправляются. Повторюсь, я ремапы не делал, если только в подключенных библиотеках такая установка задана. Сейчас изучаю этот вопрос.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Первый раз вижу чтобы кто-то реализовал delay() инкрементя счетчик в прерывании от таймера каждую us, там же минимум треть времени впустую тратится... А проблема видимо в копипасте:
Код:
void USART1_Init() { ..... // Set USART2 IRQ at lower priority NVIC_InitStruct.NVIC_IRQChannel = USART2_IRQn; }
Копипастинг... ну да есть малость. Куда же без него. Сейчас пробую научиться работать через прямой доступ к регистрам, без SPL и HAL. Я понимаю что это более верный путь, но использование SPL подмывает своей наглядностью. Насчёт delay() , это я подсмотрел в инете на http://www.handsonembedded.com/stm32f10 ... utorial-7/. Тот отрывок что вы привели закомментирован в программе, так что дело не в нём. Он для "справки".
В обработчике прерывания USART1_IRQHandler() предполагается кидать данные, которые приходят от sim800, в терминал компьютера. Но к пинам usart1 ничего не подключено, соответственно прерывание произойти не может. Повторюсь что уже есть почти законченный проект на atmega328 и sim800c, написанный в codevision. Столкнулся с нехваткой портов, думал применить atmega644, но уже давно хотел попробовать stm32, да и платка валяется с stm32, вот и решил попробовать.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения