Например TDA7294

Форум РадиоКот • Просмотр темы - STM32C8T6 использование двух USARTов в одном проекте
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Вт июл 16, 2019 11:01:48

Часовой пояс: UTC + 3 часа [ Летнее время ]


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 10:29:51 
Открыл глаза

Зарегистрирован: Вт янв 13, 2009 17:27:43
Сообщений: 64
Рейтинг сообщения: 0
Добрый день. Совсем недавно решил изучить STM32. Раньше имел дело только с AVR. Есть у меня проект контроллера на SIM800C для атмеги328. Решил портировать его на stm32. В проекте используется 2 usart, один для общения с sim800c, второй для вывода отладочной инфы в терминал компьютера. Есть проблема. В программе делаю инит двух usart, затем передаю одну строку через usart2. Она приходит в терминал на компьютере(правда почему-то первая передача без первого символа, все остальные передачи строк передаются полностью), затем передаю другую строку через usart1, но она почему-то опять приходит в терминал компа, хотя usart1 сидит на других пинах и к ним ничего не подключено. Работаю в Keil 5 с платкой BluePill. Для передачи в комп использую адаптер на cp2102, пробовал и через переделанный китайский st-link2 с поддержкой VCP.


Вложения:
_НА_ПРОБУ___GSM_SIM800C_controller_SMART.7z [257.56 KiB]
Скачиваний: 16
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 12:18:29 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
Такое будет, если у SIM800C эхо есть.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 12:31:15 
Открыл глаза

Зарегистрирован: Вт янв 13, 2009 17:27:43
Сообщений: 64
Рейтинг сообщения: 0
Sim800 пока вообще не подключен, я писал что к пинам usart1 ничего не подключено. По плате usartы между собой не звонятся. В программе ремапы не делал.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $88 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 13:01:36 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
И всё же, отключи прерывание по приёму на USART1.


Вернуться наверх
 
Материалы вебинара: "Литиевые ХИТы FANSO или что нужно знать инженеру о батарейках"

На сайте Компэл доступны материалы вебинара, посвященного литиевым батарейкам FANSO. На мероприятии говорилось о том, на какие параметры следует обращать внимание, выбирая литиевый ХИТ, и как избежать некоторых проблем, затрагивались вопросы тестирования и пассивации батареек, и мн. др.
Вы можете посмотреть видеозапись вебинара, ознакомиться с презентацией и ответами на вопросы.
Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 13:18:41 
Открыл глаза

Зарегистрирован: Вт янв 13, 2009 17:27:43
Сообщений: 64
Рейтинг сообщения: 0
Я конечно попробую, но что это даст? Я проверял и с подключенным sim800, всё равно данные с пинов usart1 идут в терминал компьютера. Такое ощущение что внутри МК данные перенаправляются. Повторюсь, я ремапы не делал, если только в подключенных библиотеках такая установка задана. Сейчас изучаю этот вопрос.


Вернуться наверх
 
Конденсаторы Panasonic. Часть 1. Алюминий

Известная своими инновациями компания Panasonic даже в столь традиционные изделия как алюминиевые электролитические конденсаторы ухитряется вносить оригинальные и полезные конструктивные дополнения.
Отдельно можно выделить инновационное направление Panasonic, занимающееся разработкой и производством решений по отводу тепла, основу которого составляют специальные графитовые листы (семейство PGS). Емкостное направление Panasonic выпускает полимерные, пленочные и классические электролитические конденсаторы, о которых пойдет речь.
Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 13:27:20 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 66
Зарегистрирован: Вт май 01, 2018 20:44:47
Сообщений: 621
Рейтинг сообщения: 0
Это даст источник проблемы. Посылка в USART2 идёт из двух мест. Из main и из прерывания USART1. Отключив второе сузишь поиск вдвое.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 14:50:03 
Опытный кот

Карма: 15
Рейтинг сообщений: 142
Зарегистрирован: Вс июн 19, 2016 10:32:03
Сообщений: 814
Рейтинг сообщения: 0
Первый раз вижу чтобы кто-то реализовал delay() инкрементя счетчик в прерывании от таймера каждую us, там же минимум треть времени впустую тратится... А проблема видимо в копипасте:
Код:
void USART1_Init()
{
.....
    // Set USART2 IRQ at lower priority
    NVIC_InitStruct.NVIC_IRQChannel = USART2_IRQn;
}


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 15:22:56 
Открыл глаза

Зарегистрирован: Вт янв 13, 2009 17:27:43
Сообщений: 64
Рейтинг сообщения: 0
Копипастинг... ну да есть малость. Куда же без него. Сейчас пробую научиться работать через прямой доступ к регистрам, без SPL и HAL. Я понимаю что это более верный путь, но использование SPL подмывает своей наглядностью. Насчёт delay() , это я подсмотрел в инете на http://www.handsonembedded.com/stm32f10 ... utorial-7/. Тот отрывок что вы привели закомментирован в программе, так что дело не в нём. Он для "справки".


Вернуться наверх
 
Prist.ru предлагает скидку всем частным лицам при покупке приборов АКИП, GW Instek, APPA (кроме осциллографов АКИП-4115/1А, GDS-71102)!

Интересные новинки уже на складе:

Осциллограф АКИП-4126Е

Многоканальные источники питания серии GPP

Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 15:38:56 
Открыл глаза
Аватар пользователя

Карма: 4
Рейтинг сообщений: 12
Зарегистрирован: Вт апр 02, 2013 11:03:29
Сообщений: 70
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Такое будет, если у SIM800C эхо есть.

Есть.

_________________
Для связи email: info собака qbit.su


Вернуться наверх
 
Купить электронные компоненты в LCSC

Отправка со склада через 4 часа после заказа!
900 000 пользователей, 3000+ заказов в день!
Зарегистрируйтесь сегодня и получите скидку 8 долларов на первый заказ!
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 15:40:15 
Опытный кот

Карма: 15
Рейтинг сообщений: 142
Зарегистрирован: Вс июн 19, 2016 10:32:03
Сообщений: 814
Рейтинг сообщения: 0
Насчёт delay() , это я подсмотрел в инете на http://www.handsonembedded.com/stm32f10 ... utorial-7/

Так имеет смысл делать разве что для ms.

Цитата:
Тот отрывок что вы привели закомментирован в программе, так что дело не в нём.
Точно, без подсветки не заметил. Тогда может дело в этом?
Код:
void USART1_IRQHandler() // from SIM800C
 {
....
     UART2_Transmit_char(data);


И вместо проверки TC после отправки байта нужно проверять TXE перед отправкой, тогда может первый символ и не будет теряться.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 15:54:54 
Открыл глаза

Зарегистрирован: Вт янв 13, 2009 17:27:43
Сообщений: 64
Рейтинг сообщения: 0
В обработчике прерывания USART1_IRQHandler() предполагается кидать данные, которые приходят от sim800, в терминал компьютера. Но к пинам usart1 ничего не подключено, соответственно прерывание произойти не может. Повторюсь что уже есть почти законченный проект на atmega328 и sim800c, написанный в codevision. Столкнулся с нехваткой портов, думал применить atmega644, но уже давно хотел попробовать stm32, да и платка валяется с stm32, вот и решил попробовать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 16:05:23 
Опытный кот

Карма: 15
Рейтинг сообщений: 142
Зарегистрирован: Вс июн 19, 2016 10:32:03
Сообщений: 814
Рейтинг сообщения: 0
Но к пинам usart1 ничего не подключено, соответственно прерывание произойти не может.

У тебя включено прерывание по RX, но сам вход висит в воздухе, без подтяжки, потому может ловить что угодно, тем более на соседнем пине идет передача.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 21:33:36 
Открыл глаза

Зарегистрирован: Вт янв 13, 2009 17:27:43
Сообщений: 64
Рейтинг сообщения: 0
Короче не помню что и где менял-добавлял-убирал, на начало работать как надо. Каждый usart отправляет в свои пины. Портирование продолжается.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32C8T6 использование двух USARTов в одном проекте
СообщениеДобавлено: Пн мар 25, 2019 21:39:27 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1416
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 13685
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
bimerman320 писал(а):
Короче не помню что и где менял-добавлял-убирал, на начало работать как надо
норм метод

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
удивительно, но при взгляде на многих сверху ничего не меняется...


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y